scrapy-redis 介绍

1.介绍
scrapy是一个爬虫框架,但是不支持分布式。scrapy-redis在scrapy的基础上,更方便地实现了分布式。
scrapy-redis提供了下面四种组件(component):(四种组件意味着scrapy的四个模块都要修改)
Scheduler
Duplication Filter
Item Pipeline
Base Spider
这里写图片描述
Schedular:
改造了python本来的collection.deque(双向队列),改用自己的redis来存放请求信息替代队列。
{
优先级0:队列0,
优先级1:队列1,
优先级2:队列2
}
scheduler根据requests根据优先级,来决定该入哪个队列。

Duplication Filter
Scrapy 中用集合实现这个request去重功能,Scrapy中把已经发出去的requests生成指纹,放入到一个redis的set中。

Item Pipeline
引擎将(Spider返回的)爬取到的Item给 Item Pipeline,scrapy-redis的Item Pipeline将爬取到的Item存入redis的items queue。
修改过的Item Pipeline 可以很方便的根据key从items queue提取item,从而实现 items processes集群

Base Spider
不在使用scrapy原有的Spider类,重写的RedisSpider继承了Spider和RedisMixin类,RedisMixin是用来从redis中读取url类的。

当我们生成一个Spider继承RedisSpider时,调用setup_redis函数,这个函数会去连接redis数据库,然后设置signal(信号):

  • 一个是当spider空闲时候的signal
  • 一个是当抓到item时的signal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值