分布式网络爬虫关键技术分析与实现一网络爬虫相关知识介绍
2010-09-30 16:53:59 来源:WEB开发网3.6分布式网络爬虫研究现状
要在搜索引擎中尽可能地找到用户所需信息,就要求搜索引擎索引尽可能多的网页,索引网页数量是评价一个搜索引擎好坏的关键因素之一。采用分布式技术在尽可能短的时间内搜集尽可能多的网页,是研制高效搜索引擎的关键技术到目前为止,分布式网络爬虫系统已经有了不少应用,例如现在著名的 Google 和
Alta Vista搜索引擎所采用的网络爬虫系统。但由于商业机密等因素的影响,较详细的介绍分布式网络爬虫系统的文章并不多,并且基于 Web 信息采集的分布式理论也还不完善,仍然有待研究。目前,较著名的分布式爬虫有 Google Crawler、Mercator、Internet Archive Crawler、UbiCrawler 等,国内的有北大天网的 Web Gather 爬虫系统。
Google 的分布式爬虫系统由四台机器组成,其中一台机器是中央主机,其它三台机器只负责爬行网页,并且只与中央主机通信。中央主机从一个文件里读取 URL,并把它们分发给其它机器的 Crawler 进程。爬虫采用异步 I/O 同时从 300 个网站上获取数据。所有的 Crawler 将下载来的页面压缩并存放在磁盘上。然后 Indexer 进程从这些 HTML页面中将 URL 提取出来,并存放在另一个磁盘文件中。URL Resolver 进程读取这个存放链接的文件, 将其中的相对链接转化为绝对链接, 然后存入一个文件供中央主机读取。不足之处在于如果中央主机失效,则整个系统都会停止工作,而且中央主机的 URL 分
发模块常常成为整个系统的瓶颈。
Mercator是 Alta Vista 搜索引擎的网络爬虫,它完全由 JAVA写成。Mercator的可扩展性非常好,可以通过增减或替换模块来实现不同的功能。Mercator采用的数据结构可以使无论爬行的规模有多大,只占用有限的内存,数据结构的大部分都在硬盘中存放。并且 Mercator 只存放 URL 的 checksum 值,这样可以节省大量的内存和磁盘空间。Mercator 为最近访问 URL 建立了缓存,该缓存的命中率达到 85%。在提高系统性能方面,Mercator 系统做了非常多的工作,比如重写 JAVA 核心库,建立缓存,采用高速硬盘系统。Mercator 证明了使用JAVA语言也可以达到较高的性能。
Internet Archive 爬虫系统采用多个机器共同搜集网页。每个 Crawler 进程负责搜集64 个 Web站点的网页。Crawler 从起始 URL集合中读取,采用异步 I/O并行爬取网页。网页下载后,提取出超链接。如果超链接属于本Crawler负责搜集的 Web站点,则加入未访问 URL 集合,否则存储到交叉 URL 文件中。批处理模块定期分配这些交叉 URL文件到相应的搜集模块,在此过程中要过滤掉重复的 URL。
赞助商链接