scrapy-redis 介绍
2017-08-20 16:38
197 查看
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
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
相关文章推荐
- scrapy-redis介绍(三):如何自定义user-agent
- scrapy-redis介绍(一)
- scrapy-redis基础和介绍
- 关于Redis未授权访问漏洞利用的介绍与修复建议
- Redis五种数据类型介绍
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
- 一淘搜索之网页抓取系统分析与实现(2)—redis + scrapy
- 爬虫Scrapy-01框架介绍
- Redis 实践1- redis介绍和安装
- [翻译]redis2.2新版功能介绍
- redis在php中的使用介绍
- Redis持久化方式介绍
- Redis事务介绍
- Redis——》介绍
- j2ee分布式架构 dubbo + springmvc + mybatis + ehcache + redis 技术介绍
- Scrapy安装介绍
- redis 五种类型介绍
- Redis中5种数据结构的使用场景介绍
- Redis五种数据类型介绍
- scrapy-redis环境配置