scrapy是一个Python爬虫框架,爬取效率极高,具有高度定制性,但是不支持分布式。而scrapy-redis一套基于redis数据库、运行在scrapy框架之上的组件,可以让scrapy支持分布式策略,Slaver端共享Master端redis数据库里的item队列、请求队列和请求指纹集合。而为什么选择redis数据库,是因为redis支持主从同步,而且数据都是缓存在内存中的,所以基于redis的分布式爬虫,对请求和数据的高频读取效率非常高。
有一篇文章是这么说的:scrapy-redis 与 Scrapy的关系就像电脑与固态硬盘一样,是电脑中的一个插件,能让电脑更快的运行。
Scrapy 是一个爬虫框架,scrapy-redis 则是这个框架上可以选择的插件,它可以让爬虫跑的更快。
说的一点都对,Scrapy 是一个通用的爬虫框架,scrapy-redis 则是这个框架上可以选择的插件,为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件),它可以让爬虫跑的更快。