广域网分布式 Web 爬虫(二)

网格的特性使其能够支持广域网部署.

1.2 分布式爬虫的基本结构和工作流程

由于爬虫要下载多个网页,而各个网页的下载过程之间依赖性较小,因此可以被并行化.为了高效地下载网

页,爬虫程序一般被设计为多线程和多进程协同的方式,而分布式爬虫是将多个具有抓取网页功能的 Agent 分

别部署于多个计算资源之上的爬虫程序.以下是分布式爬虫中每个 Agent 的大致工作流程(其中,左侧带*号的

两行代码可能需要多机协同完成).为了突出 Agent 对 URL 的处理,算法描述省略了域名解析、对网页和 URL

的预处理以及解析网站的 Robots.txt 文件的过程.

URL Seen:用于存储已经抓取过的 URL.

URL 队列:用于存储待抓取的 URL.

输入:初始 URL 列表.

Agent (初始 URL 列表) {

将初始 URL 列表中的 URL 放入 URL 队列;

while (URL 队列不为空) {

从 URL 队列中取出一个 URL;

将 URL 存入 URL Seen;

下载 URL 指向的网页;

提取网页中含有的 URL;

for (每一个新发现的 URL) {

if (URL 应由本 Agent 负责) {

} else {

if (URL 不在 URL Seen 中 && URL 不在 URL 队列中)

将 URL 放入 URL 队列;

通过一定的 Web 划分方法选择负责当前 URL 的 Agent;

将 URL 发送至此 Agent;

*

*

}

}

1.3 广域网分布式Web爬虫的优势和挑战

广域网分布式 Web 爬虫与基于 LAN 的分布式爬虫或称局域网爬虫相比具有诸多优势:

(1) 可扩展性

可扩展性是局域网爬虫的致命缺点,也是提出广域网分布式爬虫的主要原因.首先,广域网系统能够容纳更

多的计算资源,拥有更多的网络接入点.理论上,整体吞吐量可以无限扩展;局域网爬虫因其计算资源数量受到

LAN 的限制,很难扩展到较大的规模,从而限制了系统整体吞吐量.其次,广域网系统是由若干个相对较小的机

群甚至单机节点组成,这使得资源添加和系统维护都变得相对简单.如果能够进一步利用分布在 Internet 上的个

人计算资源,则维护开销将大为降低;相比之下,在 LAN 中维护大规模机群的代价则非常昂贵,需要解决数据存

储、系统互连、机架结构、电源、散热等诸多问题.

(2) 多网络接入点

爬虫在抓取网页时,HTTP 请求和下载网页的过程需要占用系统网络接入点的大部分带宽.对基于 LAN 的

系统,随着机群规模的扩大,接入带宽将变为系统瓶颈.如果爬虫程序分布在不同的网络位置,就可以使用多个

网络接入点,理论上可以获得相当于这些接入点加和的总带宽.并且随着网络接入点数量的增加,系统的总带宽

也会相应增加,理论上带宽可以无限扩展.

}

}

猜你喜欢

转载自lzwgxy.iteye.com/blog/1058245
今日推荐