上一篇文章我们用Scrapy单机爬取淘宝商品数据,由于CPU、IO和带宽等多重限制,单主机爬虫在爬取大量数据时可用性、稳定性和性能都不是很高。为了提高爬取效率、防止被网站反爬虫策略限制IP等各方面原因我们采取Scrapy分布式爬虫。
Scrapy分布式原理
打造Scrapy分布式爬虫的关键是调度,因为需要将单机关联起来,我们采用的方式是消息队列。
单机架构,只在本机维护一个爬取队列,Scheduler进行调度,而要实现多台服务器共同爬取数据关键就是共享爬取队列。
重要的是队列通过什么维护?
这里一般我们通过Redis为维护。
Redis,非关系型数据库,Key-Value形式存储,结构灵活。
并且redis是内存中的数据结构存储系统,处理速度快,提供队列集合等多种存储结构,方便队列维护