欢迎光临搜索优化网站,为您在线提供搜索引擎优化问题!

搜索优化

我们提供一站式关键词优化快速稳定,解决网站排名查询困难。

分布式多爬虫系统——架构设计

作者:jcmp      发布时间:2021-04-18      浏览量:0
(原文链接:http:// bl

(原文链接:

http:// blog.csdn.net/bone_ace/ article/details/55000416。

在爬虫的开发过程中,有些业务场景需要同时抓取几百个甚至上千个网站,此时就需要一个支持多爬虫的框架。在设计时应该要注意以下几点:

一、正文:

以下将通过解释两张图来说明架构的设计思想。

框架主要分成两部分:下载器Downloader和解析器Analyzer。Downloader负责抓取网页,Analyzer负责解析网页并入库。两者之间依靠消息队列MQ进行通信,两者可以分布在不同机器,也可分布在同一台机器。两者的数量也是灵活可变的,例如可能有五台机在做下载、两台机在做解析,这都是可以根据爬虫系统的状态及时调整的。

从上图可以看到MQ有两个管道:HTML/JS文件和待爬种子。 Downloader 从待爬种子里拿到一条种子,根据种子信息调用相应的抓取模块进行网页抓取,然后存入HTML/JS文件这个通道; Analyzer 从HTML/JS文件里拿到一条网页内容,根据里面的信息调用相应的解析模块进行解析,将目标字段入库,需要的话还会解析出新的待爬种子加入MQ。

可以看到Downloader是包含User-Agent池、Proxy池、Cookie池的,可以适应复杂网站的抓取。

模块的调用使用工厂模式。

二、结语:

要写一个支持分布式、多爬虫的框架,具体的实现上还是有一定难度的。在实现主要功能以外,还要注意做到代码严谨 规范,爬虫高效 健壮的要求。做完这些以后,你定会成长不少!

今天就分享这些,欢迎交流!