1 通用网络爬虫研究现状
通用网络爬虫从种子URL出发,将抓取到的URL存入待抓取队列,然后重复执行相同的步骤,直到一定的条件才停止抓取。通用网络爬虫的抓取范围广数量巨大,现在主要为大型的Web网络服务商提供数据采集服务,具有极大的商业价值。典型的通用网络爬虫主要有Google Crawler,Internet Archive Crawler以及Mercator[2]。87240
谷歌搜索引擎是一个分布式的系统它使用多台机器来进行爬取操作。Google Crawler是由运行在不同进程内的五个功能模块组成。一个统一资源定位符(URL)服务器进程将从文件内读取统一资源定位符并转发给多个爬虫进程。每个爬虫进程以单线程的形式运行在不同的机器上,并且使用异步IO从多达300台web服务器平行地获取数据。这些爬虫传输下载的页面到单独的存储服务器进程,这个服务进程会压缩网页并且把它们存储到硬盘上。然后通过一个检索进程从硬盘上读取这些下载的页面,同时从HTML页面提取链接并保存到不同的硬盘文件里。一个URL解析进程会读取链接文件并把包含在内的URL相对地址转变为绝对地址,然后把这些地址保存到可以被URL服务器读取的硬盘文件里。通常情况下,爬虫程序需要三到四台机器,所以整个系统要求四到八台机器。
Internet Archive Crawler也使用多台机器对web进行爬取。每个爬虫进程爬取64个站点,并且每个站点最多只分配一个爬虫。每个单线程爬虫进程把硬盘上的种子URLs(分配到的站点)读入到相应的站点队列,然后使用异步IO并行地从这些队列里获取页面。一旦下载好一个页面,爬虫就会从中提取链接。如果这个链接所指向页面的站点是这个爬虫所包含的,它会被加入到相符合的网站队列,否则会被记录到硬盘上。一个批处理进程会周期性地合并这些记录下的跨站URL并保存到特定的站点种子集里,同时它会过滤掉相同的URL。论文网
因为通用爬虫存在着许多的缺陷,比如,爬取的信息过大且没有针对性,资源占用率高。人们从而引入了主题爬虫。
2 主题网络爬虫研究现状
主题网络爬虫与通用网络爬虫最大的不同是主题网络爬虫在爬行过程中会分析下载网页的内容,主题相关性以及网页链接的优先级,然后只抓取与主题相关的网页。主题网络爬虫会沿着主题相关的网页爬行,而无关网页将被舍弃。目前主题爬虫搜索策略的方法主要有基于内容评价的搜索策略,基于链接结构评价的搜索策略,基于未来回报价值评价的搜索策略和启发式搜索算法等[3]。
首先介绍基于内容的搜索策略,例如Best First Search算法、Fish Search算法[4]、Shark Search算法等等。Best First Search算法是根据URL所对应的网页内容与主题词之间的相似度来判定此URL的优先级,在爬虫将先抓取优先级高的URL。Fish Search算法,该算法形象的将主题网络爬虫比喻成大海里的鱼,当鱼找到食物(相关网页)就可以继续繁殖(向前爬行),当鱼一直找不到食物,就会逐渐死亡(停止爬行)。Shark Search算法即鲨鱼算法它打破Fish Search算法中是否相关的二值判断,引入了在0与1之间的相似性度量方法,该法可以对URL进行排序。
通常情况下,网络中的资源是按照一定的规则排放的,网页中包含的链接也都是与主题相关的,相关的网页之间互相链接形成主题团,这是主题网络爬虫成立的前提条件。研究者们根据这种链接现象提出了基于链接结构的评价算法,最具代表性的有Page Rank算法和Hits算法等。Page Rank算法[5]是一种在离线状态下对整个网络结构图进行迭代,然后求出用户访问一个网页的概率,最后根据该概率对网页的重要程度进行分类。Hits算法[6]是在Page Rank算法的基础上做出了改进,它在不同的网页中引入了两个值,这两个值分别是hubs权重值和authority值。迭代计算出这两个值就能判断网页的重要程度,权值越高重要程度就越高。 网络爬虫国内外研究现状综述:http://www.youerw.com/yanjiu/lunwen_130287.html