scrapy监听redis_第七章 第一节 分布式爬虫库 scrapy-redis

如果觉得文章对您产生帮助的话, 欢迎关注Python开发之路(微信公众号: python-developer), 及时获取更多教程

关于scrapy基本的用法, 基本就讲完了, 这一章开始, 就讲一些相对来说比较实用的教程了. 第七章主要也是讲分布式的爬虫, 在大型爬虫里是必须掌握的方式

我们在开发爬虫时, 有时需要做大规模的爬虫, 单机的抓取速度非常受限, 所以就需要用分布式爬虫来提升速度

scrapy-redis作为官方推荐的分布式开发方案, 所以也是想从事爬虫工作的小伙伴必须学会的

scrapy-redis依赖于redis来做任务队列, 无论哪个爬虫服务器, 都可以从指定的队列中获取到任务来爬取, 当抓取的任务数量提升以后, 也可以通过增加服务器来提升抓取速度。

scrapy-redis的运行流程

  1. 将第一个任务写入到redis中,
  2. scrapy-redis的调度器监听任务队列, 并且交给下载器完成下载
  3. 当遇到yield Requestyield FormRequest之类的, scrapy-redis会把Request对象pick up(序列化)后存入redis中.
  4. 如果指定pipline是scrapy-redis的pipeline, 并且遇到yield item, 则将item也存入redis中. 自己编写脚本从redis中读取抓取到的item

scrapy-redis的优势:

  1. 分布式爬虫, 可扩展性好
  2. 性能高, 队列实现是redis, 高效
  3. 爬虫编写方式基本不变, 之前的单机爬虫可以直接改成分布式

现在我们就来写一个简单的分布式爬虫

一、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值