您的位置:首页 > 其它

基于主题的Web信息采集技术研究(二)

2006-03-26 02:48 375 查看
第二章 Web信息采集概述
在研究基于主题的Web信息采集之前,让我们先来看看Web信息采集的基本情况,这包括Web信息采集的基本原理、基本结构和主要难题。它们是从各类Web信息采集系统中抽象出来的,因此代表了比较本质和共性的特征,而对于每个实际的采集系统来说,又与它们有所差别。为了更好的了解采采集系统,我们在本章的最后列举了两个实例。

2.1 Web信息采集系统的基本原理

Web信息采集(Web Crawling),主要是指通过Web页面之间的链接关系,从Web上自动的获取页面信息,并且随着链接不断向所需要的Web页面扩展的过程。实现这一过程主要是由Web信息采集器(Web Crawler)来完成的。根据应用习惯的不同,Web信息采集器也常称作Web Spider、Web Robot和Web Worm。粗略的说,它主要是指这样一个程序,从一个初始的URL集出发,将这些URL全部放入到一个有序的待采集队列里。而采集器从这个队列里按顺序取出URL,通过Web上的协议,获取URL所指向的页面,然后从这些已获取的页面中提取出新的URL,并将他们继续放入到待采集队列里,然后重复上面的过程,直到采集器根据自己的策略停止采集。对于大多数采集器来说,到此就算完结,而对于有些采集器而言,它还要将采集到的页面数据和相关处里结果存储、索引并在此基础上对内容进行语义分析。

2.2 Web信息采集系统的基本结构

如图2.1所示,Web信息采集系统基本上可以划分为七个部分:URL处理器、协议处理器、重复内容检测器、URL提取器、Meta信息获取器、语义信息解析器和数据库,它们协调起来从Web上获取信息。图中的箭头表示数据走向。

2.2.1 URL处理器

这个部件主要给待采集的URL排序,并根据一定的策略向协议处理器分配URL。按照采集系统规模的不同,URL可以是多个采集队列,也可以是一个URL Server。比如,天罗Web采集系统采用了多个采集队列,而Google采集系统则使用了URL Server,以达到更快的处理速度。URL处理器主要有三个数据来源:1)初始的种子URL集,如图中的粗箭头所示;2)从URL提取器传输过来的URL集,它们是从已经采集到的页面中提取出来的;3)页面的Meta、主题以及摘要等信息,来自Meta信息获取器,它们主要用来显示从URL提取器中传输过来的URL的重要性,为在这里排序提供依据。另外,URL处理器还有一个任务就是DNS解析。

 

图2.1 Web信息采集系统基本结构

2.2.2 协议处理器

这个部件处于系统的底层,主要通过各种Web协议来完成数据的采集。一般来说协议包括HTTP、FTP、Gopher以及BBS,也有些采集系统根据应用的需要采集Web Chat、ICQ等特殊信息。但从主流上看,仍以HTTP为主。

2.2.3 重复内容检测器

Web上存在着大量的镜像页面和内容,最近的研究表明,将近30%的页面是重复的。这极大的浪费了网络的带宽和影响了系统的效率。所以,重复内容检测变成了采集系统,特别是大型采集系统的重要组成部分。要采用的检测方法,根据系统的需要,从简单的段落匹配到复杂的相似度比较中选择。

2.2.4 URL提取器

对于采集到的页面,经过重复内容检测后,需要分析其中的链接,并对链接进行必要的转换,这些任务由URL提取器来完成。首先判别页面类型,对类型为“text、html、shtml和htm”等的页面进行分析链接。页面的类型可由应答头分析得出,有些WWW站点返回的应答信息格式不完整,此时须通过分析页面URL中的文件扩展名来判别页面类型。需要分析的标记包括<a href=……>、<area href=……>、<base href=……>、<frame src=……>、<img src=……>、<body background=……>和<applet code=……>等。页面链接中给出的URL可以是多种格式的,可能是完整的包括协议、站点和路径的,也可能是省略了部分内容的,或者是一个相对路径。为处理方便,一般先将其规格化成统一的格式。

2.2.5 Meta信息获取器

这里所要获取的内容包括已采集页面的Meta信息、Anchor信息、页面的标题、页面的摘要等。获取它们的主要目的是力图在没有对页面内容语义信息进行理解的前提下,尽可能多的挖掘meta、结构等的语义信息,来为从这些页面中提取出来的URL的好坏,给出一个度量。度量的结果传输到URL处理器,用于排序。

2.2.6 语义信息解析器

根据采集策略的不同,有些采集器还有语义信息解析器。这里所说的语义信息解析就是指对文本内容建立简单的索引。因为它在一定程度上挖掘了页面内容的语义,所以叫做语义信息解析器。对于一些大型的信息采集器,比如Alta Vista,由于采集的信息量很大,对语义挖掘的深度要求较高,所以一般将页面语义挖掘与信息采集独立开来,而用专门的Indexer等部件进行处理。对于一些轻量级的采集系统,比如基于用户个性化的采集,因为采集的信息量不大(这样语义信息解析就不太影响采集效率)和采集过程中更需要语义信息制导,所以它们也常用到语义信息解析器。

2.2.7 数据库

经过重复内容检测后的页面数据、提取出来的Meta信息、主题和摘要等都要存入数据库,以备其他应用使用。比如,对于Google这样的搜索引擎,这个数据库中的内容将用于建立索引。如果系统有语义信息解析器,则解析出来的内容也存入数据库。由于数据较多,所以在存入数据库之前,数据一般要进行压缩。

2.3 Web信息采集面临的主要困难和相应的技术手段:

粗看起来,采集的过程似乎比较简单,但实际上,它却存在着许多技术上和工程上的挑战。在分析这些挑战之前,先看一下Web的特点。

2.3.1 Web的特点

Web与传统的信息媒介相比,主要存在以下几个特点:1)信息容量的巨大性,在1998年7月,Web上的静态文本大约有3亿5千万个,并且以每月600GB的速度增长[Kahle 1997];2)Web的动态性,每天Web中的内容和Web的结构都在变化着;3)Web的异构性,Web中包含的文件类型各式各样,包括图像、图片、声音、文本以及Script等;4)Web页面的重复性,最近的研究表明,将近30%的页面是重复的;5)高链接性,平均每个页面有超过8个链接指向别的页面;6)多语种性,现在Web上的页面语种超过了100个。这为Web的有效采集,特别是为搜索引擎的采集提出了巨大的难题。

2.3.2 Web采集面临的技术困难和相应手段

从技术角度看,挑战主要有以下几点:第一,Web信息容量的巨大性使得采集器不可能采集到所有的Web页面,而且很多采集系统也没有足够大的空间来存放采集到的所有页面。如何提高采集的效率,即在单位时间内采集到尽可能多的高质量页面,是采集系统面临的一个难题。目前,有五种页面质量高低的计算方法:1).Similarity(根据页面和指导采集的问题之间的相似度);2).Backlink(根据这个页面在Web图中的入度大小);3).PageRank(根据指向它的所有页的平均权值之和,一页的平均权值定义为这页的权值除以这页的出度);4).Forwardlink(根据这个页面在Web这个图中的出度的大小),5).Location(根据这个页面的位置信息)。Cho中对比了宽度优先方法、Backlink方法和Pagerank方法[Cho, Molina & Page 1999],并根据试验比较得出PageRank方法最好。这是因为Pagerank方法反映的是一种全局的页面质量分布,它能够较快的发现全局的高质量页面。

第二,并行性问题。页面的采集速度一直是影响采集器性能的重要原因。一方面,Web中的页面数量非常庞大,另一方面,网络中的连接速度又非常缓慢,这客观上要求系统需要并行。然而,要并行又引入新的问题:1).重复性(Overlap),多个不同的采集器或采集线程在同时采集的时候增加了重复页面;2).质量问题(Quality),单个系统能够根据算法采集到全局最优的页面。而如果并行,每个采集线程只能看到局部页面,它能够采集到的页面质量有所下降;3).通信带宽代价(Communication bandwidth),为了并行,各个采集线程之间不可避免的要有一些通信。一般来说,采集系统采用两种模式来并行:局域网并行模式(所有的采集线程都运行在同一个局域网内,它们之间通过高速的内连接进行通信)和分布式并行模式(采集系统被分布在地域上较远的Internet上,通过网络进行远程通信)。在并行时,采集系统也可选用以下三种方式合作:1).独立方式,各个采集器之间独立的采集各自的页面,互不通信;2).动态分配方式,有一个中央协调器,动态的协调分配URL给各个采集器;3).静态分配方式,将URL按事先划分分配给各个采集器。对于静态分配方式,存在一种跨区链接(Inter-link,指一个采集器在提取链接时遇到的不属于自己采集范围的链接)。难题在于跨区链接并不一定能被它所属于的采集器发现,如果本采集器采集了则可能重复采集,如果不采集则可能漏采。近期的研究工作针对这种情况比较了三种模式: 1).防火墙模式,完全不采集inter-link页面;2).交叉模式,采集遇到的inter-link页面;3).交换模式(Exchange mode)当采集到inter-link,就将这些链接保存起来,积累到一定数量后传输给相应的采集器进行采集。实验结果和我们的直觉一样:交换模式最好:交换模式最好[Cho 2001]。

第三,刷新问题。为了保持采集到的页面是最新的,采集系统不得不对已经采集过的页面进行周期性的更新。而随着Web的爆炸性膨胀,这个问题几乎变成了不可逾越的鸿沟。最近的一项报告显示,甚至流行的Web搜索引擎,页面刷新一次甚至持续数月[Lawrence&Giles 1999]。同时,这份报告也显示,14%的搜索引擎提供页面是无效的。Cho试图用泊松过程(Poisson Process)来描述页面变化率,并研究和对比了三种页面刷新策略:固定顺序的刷新,随机刷新和纯随机刷新策略。直觉上,更多的刷新应该分配给更那些更新快的页面。但研究表明,用较高的频率刷新更新快的页面并不一定是明智之举,对各种页面采用相同的刷新周期效果更好,而效率最佳的点在这两种刷新策略中间。这是因为,过高频率的刷新更新快的页面,使得其它页面有较少的刷新机会,反而造成总体刷新质量下降[Cho 2001]。

2.3.3 Web采集面临的工程困难和相应手段

从工程角度看:第一,正如前面分析的,Web中的信息是完全异构、混乱和无序的,文件格式各式各样,网络状况也随时间变化莫测。所有的这些不确定性因素,为系统实现带来了极大的困难。这就要求采集系统有完善的异常处理和故障恢复机制,充分考虑到实际网络环境中可能出现的各种情况。

第二,多线程与并行机制使系统变得非常复杂。在这种复杂的环境下,系统的许多瓶颈变得异常突出,并需要采用多种设计技巧来解决。比如说,对一个网站的采集不能过分集中,以防止造成网站负担过重,Google中的页面采集就是同时采集多个站点。在Google中,系统为每一个采集器都配了一个DNS缓存服务器,以加快DNS解析的速度。

2.4 采集系统实例

下面就以两个实际的采集系统为例来具体说明,它们即有一般采集器的共同特点,也有自己的特色。

2.4.1 Mercator信息采集器的基本结构和工作过程

Mercator信息采集器是一个由康柏研究中心研制的面向整个Web的分布式多线程信息采集系统[Heydon&Najork 1999]。它的基本结构如下图2.2所示,采集步骤是从1)到8)不断循环。步骤1)就是从多个线程共享的URL Frontier中移出绝对路径的URL来。绝对路径的URL中指明了这个URL采用什么方式下载。具体和协议相关接口的实现在Protocol Modules中。并且,用户可以通过设置文件来告诉系统装载哪些协议接口。

在步骤2)中,系统选择了相应的协议,通过了DNS解析并从Web上下载了页面,然后将页面放入3)RewindInputStream(RIS)中,RIS相当于一个缓存,能够多次快速的读内容。一旦文件被放进RIS,这个工作线程就启动内容检测模块看是否此页面已经被采集过,这就是步骤4)。如果采集过,系统就抛弃此页并跳至步骤1)。

如果此页没有采集过,就进入步骤5)Processing Modules,在这里对页面进行初步的分析,比如提取标题、摘要和链接。缺省状况下,页面中的所有链接都被提取出来,并转换成绝对URL。然后进行步骤6),也就是根据用户要求对URL进行过滤(Filtering)。如果URL通过了过滤器,则检查此URL是否已经在URL待采集库中(步骤7)。如果此URL没有,则将它加入到URL Frontier中,等着被选中进入下一轮循环(步骤8)。

图2.2 Mercator信息采集器结构

2.4.2 天罗信息采集系统的基本结构和工作过程

天罗信息采集系统是在国家“863”计划下由曙光公司开发的智能导航系统的子系统。本采集系统最初的目标是面向整个Web的信息采集,随着Web服务向个性化主动服务等领域的拓展,本采集系统的后续版本在中科院计算所领域前沿青年基金资助下正在向基于主题的采集方向发展。

如图2.3所示,天罗Web信息采集系统从功能上看可分为两个部分:采集器部分和控制部分,中间的竖立虚线将他们分开。采集器部分主要负责实际采集,它分为三个部分。1).站点采集。把整个Web以站点为单位划分成若干个连通子图是合乎人们的浏览习惯的,并且也是利于存储的。天罗Web信息采集系统的设计就是根据这一点,对Web上的页面以站点为单位进行采集。2).页面采集。尽管系统从粗粒度上看,采集是以站点为单位的,但是从细粒度上讲,每次只采集一页。这个部分考虑的重点就是对采集每页相关的协议的处理和实时网上异常的处理。3).存储库,主要存储采集到的数据、站点结构信息以及相关的有用信息。

图2.3天罗信息采集系统结构

控制部分主要负责采集以外的协调、策略以及与应用的接口,它分为五个部分。1).采集系统设置,主要用于系统管理员对采集系统的控制,包括设置采集起点和采集策略。2).采集系统控制,这是采集系统最具有全局观念的一个子系统,它主要负责总体控制和其他各子系统之间的协调和连接,另外它还集中式的控制多个采集器并行。3).存储库,主要负责存储一致化处理后的各项数据以及在此基础上进行索引等处理的数据。4).采集策略处理,负责处理采集系统在理论上最难的一个部分——如何有效的采集和动态的刷新。5).安全开关,在实际应用系统中,采集器往往直接和Web相连,而同时又与内部的应用服务器相连,如果不加安全处理,Web对于应用服务器是非常危险的。为此,本采集系统设计了低成本高效率的安全开关。当与应用系统交换数据时,采集系统与Web断开;当在Web上采集数据时,采集系统与应用系统断开。这也是本采集系统的特色之一。图中的箭头描述了数据流向。

为了提高采集的效率,天罗Web采集系统采用服务器(采集系统控制)/采集器的结构使采集系统具有很好的可扩展性。管理员可根据系统采集规模的变化动态地调整采集器的数量,在保证系统性能的前提下尽量减少系统开销,达到最佳的性能/价格比。而且在规模动态变化的过程中,系统能维持一致的管理和数据输出接口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: