码迷,mamicode.com
首页 > 其他好文 > 详细

scrapy_redis实现爬虫

时间:2018-11-05 21:55:54      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:行数据   ima   bubuko   流程   settings   set   info   efi   rap   

1、scrapy_redis的流程

  • 在scrapy_redis中,所有的带抓取的对象和去重的指纹都存在所有的服务器公用的redis中
  • 所有的服务器公用一个redis中的request对象
  • 所有的request对象存入redis前,都会在同一个redis中进行判断,之前是否已经存入过
  • 在默认的情况下,所有数据会存放在redis中
  • 技术分享图片

2、scrapy_redis的原理分析

我们从settings.py中的三个配置来进行分析 分别是:

  • RedisPipeline
  • RFPDupeFilter
  • Schedule

2.1、Scrapy_redis之RedisPipeline

RedisPipeline中观察process_item,进行数据的保存,存入了redis中

技术分享图片

2.2 Scrapy_redis之RFPDupeFilter

RFPDupeFilter 实现了对request对象的加密

技术分享图片

2.3 Scrapy_redis之Scheduler

scrapy_redis调度器的实现了决定什么时候把request对象加入带抓取的队列,同时把请求过的request对象过滤掉

技术分享图片

由此可以总结出request对象入队的条件

  • request之前没有见过
  • request的dont_filter为True,即不过滤
  • start_urls中的url地址会入队,因为他们默认是不过滤

 

scrapy_redis实现爬虫

标签:行数据   ima   bubuko   流程   settings   set   info   efi   rap   

原文地址:https://www.cnblogs.com/caijunchao/p/9911745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!