Scrapy_redis框架的概念作用和流程
  TEZNKK3IfmPf 2023年11月13日 30 0

        当爬取的网站的数据量非常庞大的时候,再使用之前的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框架的概念作用和流程

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   27   0   0 redis用户
  TEZNKK3IfmPf   2024年05月31日   30   0   0 dataredis
  TEZNKK3IfmPf   2024年05月31日   27   0   0 awkredis
  TEZNKK3IfmPf   2024年04月12日   55   0   0 框架前端
  TEZNKK3IfmPf   2024年04月19日   39   0   0 javarediskey
TEZNKK3IfmPf