Scrapy 是一个通用的爬虫框架,但是不支持分布式
Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)
scrapy任务调度是基于文件系统,这样只能在单机执行crawl。
scrapy-redis将待抓取request请求信息和数据items信息的存取放到redis queue里,使多台服务器可以**同时执行crawl和items process**,大大提升了数据爬取和处理的效率。
分布式采用主从结构设置一个Master服务器和多个Slave服务器,Master端管理Redis数据库和分发式下载任务,Slave部署Scrapy爬虫提取网页和解析提取数据,最后解析的数据存储在同一个MongoDb数据库中。
实现原理
通过scrapy写了一个工程之后,是不能同时让两个电脑共同爬取
为什么不能呢?
因为你的scrapy运行在你的电脑的内存中,你的调度器运行在你的内存中。我的调度器运行在我的内存中
将**调度器**放到公共的地方,redis中,都放到我的redis中
实现结果:
我的windows:是服务端(redis放的地方,调度器)