首页>代理ip知识与免费资源>正文
scrapy-redis分布式爬虫的工作原理
发布日期:2020/12/3 9:21:31    阅读量:9272


 

很多用户都会选择单线程爬虫都是在本地电脑上运行使用,好处就是单线程爬虫方便管理以及调试。但是如果工作量太大的情况下,分布式爬虫是爬虫工作者最好最实用的方法。

 

 


scrapy-redis分布式爬虫的工作原理.jpg




比如我们现在需要抓取200万网页页面,单线程与3个分布式工作效率时间上来看,单线程需要多5倍的工作时间。

 

 

 

从原理上来说scrapy-redis实现分布式很简单,把自己的核心服务器称为master而把用于跑爬虫程序的机器称为slave

 

 

 

采用scrapy框架抓取网页,我们需要首先给定它一些start_urls,爬虫首先访问start_urls里面的url,根据我们的具体逻辑,对里面的元素、或者是其他的二级、三级页面进行抓取。而要实现分布式,我们只需要在这个starts_urls里面做文章就行了。

 

 

 

master上搭建一个redis数据库(注意这个数据库只用作url的存储,不关心爬取的具体数据,不要和后面的mongodb或者mysql混淆),并对每一个需要爬取的网站类型,都开辟一个单独的列表字段。通过设置slavescrapy-redis获取url的地址为master地址。这样的结果就是,尽管有多个slave,然而获取url的地方只有一个,那就是服务器master上的redis数据库。

 

 


例如一个变动的待爬队列,每爬一次这个队列就会发生变化,即便分割任务也有交叉重复,这种情况下只能用分布式。一个Master存储队列,其他多个Slave各自来取,这样共享一个队列,取的情况下互斥也不会重复爬取。scrapy-redis是一款用得比较多的分布式爬虫框架

 



使用scrapy-redis分布式爬虫加上高质量优质代理ip那就是完美的配合,开心代理ip拥有200+个地区的ip资源,混拨获取的家庭真实宽带ip,是爬虫首先以及网络营销,投票助力等。



推荐阅读上一篇【如何防止爬虫被封