Scrapy_redis框架的概念作用和流程

当爬取的网站的数据量非常庞大的时候,再使用之前的Scrapy框架速度就会有点偏慢,这时可以使用分布式来快速的爬取大量的数据。

1. 分布式是什么

分布式就是不同的节点(服务器,ip不同)共同完成一个任务。

2. scrapy_redis的概念

scrapy_redis是scrapy框架基于redis的分布式组件。

3. scrapy_redis的作用

Scrapy_redis在scrapy的基础上增加了更多强大的功能,具体体现在:

通过持久化请求队列和请求的指纹集合来实现: 【指纹集合:唯一标志,可以对其做哈希】

  • 断点续爬
  • 分布式快速抓取

分布式的好处:

  • 加快项目的运行速度,但是需要的资源(硬件&网络)依然还是原有的
  • 单个节点的不稳定性不影响整个系统的稳定性

4. scrapy_redis的工作流程

4.1 scrapy的流程

Scrapy_redis框架的概念作用和流程

Scrapy_redis框架的概念作用和流程

【redis_key 是一个键存储的字符串,用于启动爬虫项目的,是启动的请求】

思考:那么,在这个基础上,如果需要实现分布式,即多台服务器同时完成一个爬虫,需要怎么做呢?

4.2 scrapy_redis的流程

  • 在scrapy_redis中,所有的待抓取的request对象和去重的request对象指纹都存在所有的服务器公用的redis中
  • 所有的服务器中的scrapy进程公用同一个redis中的request对象的队列
  • 所有的request对象存入redis前,都会通过该redis中的request指纹集合进行判断,之前是否已经存入过
  • 在默认情况下所有的数据会保存在redis中

具体流程如下:

Scrapy_redis框架的概念作用和流程

Original: https://blog.csdn.net/weixin_44799217/article/details/113807675
Author: IT之一小佬
Title: Scrapy_redis框架的概念作用和流程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/791922/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • pandas

    一、删除相关 DataFrame.dropna(self,axis=0,how=’any’,thresh=None,subset=None,inplace=…

    Python 2023年8月15日
    037
  • 图数据挖掘:基于概率的流行病模型

    1 导引 在上一篇博客《图数据挖掘:网络中的级联行为》中介绍了用基于决策的模型来对级联行为进行建模,该模型是基于效用(Utility)的且是是确定性的,主要关注于单个节点如何根据其…

    Python 2023年10月25日
    033
  • pytest数据驱动

    完整代码 有个人说过,自动化测试能让不懂代码的人只需要写测试case(数据)就能实现测试,我觉得他说的dei case使用封装 数据case 最终将只需要维护这个数据文件即可实现对…

    Python 2023年9月12日
    051
  • 《深度学习的数学》chap1 神经网络的思想

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年9月15日
    043
  • 解决Django migrate: Your models in app(s): ‘Mymodelclassname‘ have changes that are not yet reflected

    这是一个”小”问题,但稍不注意会很令人困扰。在Django项目根目录下执行命令 $python manage.py makemigrations 没有异常信…

    Python 2023年8月3日
    052
  • 【无标题】Matplotlib安装过程

    1.安装python Python官网(www.python.org),”Downloads”,选择使用的操作系统。 2.安装pip 通常python带pi…

    Python 2023年9月1日
    048
  • wsl+vscode

    什么是wsl wslWindows Subsystem for Linux(简称WSL)即可以在Windows系统上面直接运行的Linux子系统,是一个在Windows 10上能够…

    Python 2023年6月3日
    076
  • Python从入门到高手的80行代码

    最新版: 1 python即在命令行输入 python,进入 Python的开发环境。 2 x = 1+2*3-4/5+6**2加减乘除四则混合运算,可当作计算器使用,其中 **表…

    Python 2023年8月23日
    072
  • matplotlib 中颜色、线型、标记说明

    参数color表示颜色 颜色可以用颜色缩写代码、标准颜色名称、十六进制颜色值、RGB元组等方式表示。 颜色缩写代码 这些颜色参数值在图表中是通用的。 参数linestyle表示线的…

    Python 2023年9月4日
    046
  • 机器学习图像特征提取—SIFT特征提取原理及代码实现

    1 SIFT简介 2 SIFT原理及特点 2.1 SIFT算法特点 2.2 SIFT特征检测 3 SIFT代码实现 SIFT,即尺度不变特征变换(Scale-invariant f…

    Python 2023年8月2日
    050
  • python下载字体管家_使用pygame制作打地鼠游戏

    使用pygame制作打地鼠游戏 1、运行结果预览 开始界面 第一关 第二关 第三关 第四关 第五关 游戏结束 2、游戏功能介绍 2.1开发环境: python版本:python3….

    Python 2023年9月23日
    062
  • 数百个模型放在面前,金融机构要如何高效管理

    疫情推动金融机构加速数字化转型。依托人工智能、大数据等技术,金融机构建立各类模型,特别是以机器学习为代表的数据模型,被广泛运用在风险计量、客户准入、资本计量、拨备计提、客户管理、反…

    Python 2023年9月30日
    049
  • Nginx+uWSGI+Flask服务部署

    一、网络架构:调用流:当客户端发送服务请求时,若使用nginx作为代理服务器的话,先转为nginx服务器处理,然后再转给uwsgi服务器,再由uwsgi来调用项目中的代码处理服务请…

    Python 2023年8月11日
    037
  • 在Anaconda环境下创建django项目

    文章目录 * – 一:安装django – 二:使用django-admin 创建一个项目 – 三:启动项目 – 四:在网页中访问 …

    Python 2023年8月5日
    052
  • FastAPI 学习之路(六十)打造系统的日志输出

    我们要搭建日志系统,我们使用loguru,挺不错的一个开源的日志系统。可以使用 pip install loguru 我们在common创建log.py使用方式也很简单 impor…

    Python 2023年5月25日
    0177
  • Django 之模版层

    将前端页面和Python 的代码分离是一种的开发模式。 为此 Django专门提供了模板系统 (Template System,即模板层)来实现这种模式。 Django 的模板 =…

    Python 2023年6月9日
    062
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球