前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫之scrapy_redis概念作用和流程

Python爬虫之scrapy_redis概念作用和流程

作者头像
海仔
发布2020-09-28 14:20:58
4270
发布2020-09-28 14:20:58
举报
文章被收录于专栏:海仔技术驿站海仔技术驿站

scrapy_redis概念作用和流程

学习目标
  1. 了解 分布式的概念及特点
  2. 了解 scarpy_redis的概念
  3. 了解 scrapy_redis的作用
  4. 了解 scrapy_redis的工作流程

在前面scrapy框架中我们已经能够使用框架实现爬虫爬取网站数据,如果当前网站的数据比较庞大, 我们就需要使用分布式来更快的爬取数据

1. 分布式是什么

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

2. scrapy_redis的概念

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

3. scrapy_redis的作用

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

通过持久化请求队列和请求的指纹集合来实现:

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

4. scrapy_redis的工作流程

4.1 回顾scrapy的流程
在这里插入图片描述
在这里插入图片描述
思考:那么,在这个基础上,如果需要实现分布式,即多台服务器同时完成一个爬虫,需要怎么做呢?
4.2 scrapy_redis的流程
  • 在scrapy_redis中,所有的待抓取的request对象和去重的request对象指纹都存在所有的服务器公用的redis中
  • 所有的服务器中的scrapy进程公用同一个redis中的request对象的队列
  • 所有的request对象存入redis前,都会通过该redis中的request指纹集合进行判断,之前是否已经存入过
  • 在默认情况下所有的数据会保存在redis中

具体流程如下:

在这里插入图片描述
在这里插入图片描述

小结

scarpy_redis的分布式工作原理

  • 在scrapy_redis中,所有的待抓取的对象和去重的指纹都存在公用的redis中
  • 所有的服务器公用同一redis中的请求对象的队列
  • 所有的request对象存入redis前,都会通过请求对象的指纹进行判断,之前是否已经存入过

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • scrapy_redis概念作用和流程
    • 1. 分布式是什么
      • 2. scrapy_redis的概念
        • 3. scrapy_redis的作用
          • 4. scrapy_redis的工作流程
            • 4.1 回顾scrapy的流程
            • 4.2 scrapy_redis的流程
        • 小结
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档