您的位置:首页 >文章内容

分布式爬虫是爬虫工作者最实用的方法

来源:互联网 作者:admin 时间:2020-12-03 11:18:33

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

   

image.png


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


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


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


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


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


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


因为专业! 所以简单! 产品至上,价格实惠 是我们服务追求的宗旨

免费试用