我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:香港跑狗图 > 调度队列 >

如何通过动态VPS构建分布式爬虫增加爬取速度

归档日期:04-30       文本归类:调度队列      文章编辑:爱尚语录

  不管是数据分析还是数据收集,公司需要搜集大批量的用户信息,并从中搜寻有价值的数据。大批用户信息的抓取,一般的抓取形式达不到要求,那么如何加快Python爬虫的抓取速度呢?这时就要采用分布式爬虫了,现在云立方和大家一起来了解下python分布式爬虫框架,如何通过云立方动态VPS构建分布式爬虫增加爬取速度。

  Scrapy单机爬虫中有一个本地抓取队列Queue,这一队列是借助deque模块进行的。假如新的Request生成就会放到队列里面,随后Request被Scheduler调度。之后,Request交给Downloader执行爬取。

  如果两个Scheduler同时从队列里面取Request,每个Scheduler都有其对应的Downloader,那么在带宽足够、正常爬取且不考虑队列存取压力的情况下,爬取效率会有什么变化?没错,爬取效率会翻倍。

  这样,Scheduler可以扩展多个,Downloader也可以扩展多个。而爬取队列Queue必须始终为一个,也就是所谓的共享爬取队列。这样才能保证Scheduer从队列里调度某个Request之后,其他Scheduler不会重复调度此Request,就可以做到多个Schduler同步爬取。这就是分布式爬虫的基本雏形。

  我们需要做的就是在多台主机上同时运行爬虫任务协同爬取,而协同爬取的前提就是共享爬取队列。这样各台主机就不需要各自维护爬取队列,而是从共享爬取队列存取Request。但是各台主机还是有各自的Scheduler和Downloader,所以调度和下载功能分别完成。如果不考虑队列存取性能消耗,爬取效率还是会成倍提高。

  由上可知,提高爬虫的抓取效率的疑问是能够处理的,通过在云立方拨号VPS部署python分布式爬虫就能够加快爬取速度。返回搜狐,查看更多

本文链接:http://mikephotos.net/diaoduduilie/217.html