面向高校主题搜索引擎的的爬行器设计

时间:2022-10-01 05:58:18

面向高校主题搜索引擎的的爬行器设计

摘要:随着互联网的迅速发展,网页数量越来越多。人们对于网络信息专业化的需求导致了主题搜索引擎的诞生,而网络爬行器效率的高低以及算法的优劣将直接影响搜索引擎的很多性能指标,该文以“高校”为主题,探讨了设计主题爬行器的几个关键性问题。

关键词:主题搜索引擎;爬行器

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)16-3866-03

随着互联网的日益普及,越来越多的人开始使用搜索引擎在网络上检索信息。目前,搜索引擎已经成为继电子邮件之后的第二大互联网应用[1]。在网络上的信息呈现更加细化和专业的趋势下,人们有时只关心特定领域、特定范围(如教育、金融等)内的信息,这就需要进行更加全面和专业的信息检索,于是,主题搜索引擎应运而生 。

所谓主题型搜索引擎,就是指针对某一专业领域或学科内容,有目标地在互联网上搜集符合主题需要的信息资源 。在主题搜索引擎中,爬行器的设计至关重要, 一个好的爬行器往往有爬行速度快、获取数据量大和获取信息准确等优点。本文以“高校”为主题,探讨了设计主题爬行器的几个关键性问题

1 爬行器简介

搜索引擎虽然外在表现呈现出多样化,所提供的功能也有所不同,但是就其实现来说,构造基本都是一样的,都包括网络爬行器、索引模块、信息检索以及用户接口。网络爬行器在搜索引擎中占有重要地位,对搜索引擎的检索范围、检索准度都有很大程度的影响,它决定了搜索引擎数据容量的大小,网络爬行器设计得好与坏直接影响搜索结果页面中的优等页面和死链接(即链接所指向的网页已经不存在)的个数。

网络爬行器,又叫网络爬虫(Web Crawler),网络蜘蛛(Web Prider)或网络机器人(Robot),是一个通过跟随链接来遍历网络信息空间,并通过标准的HTTP协议访问网页的软件程序[2]。一个通用网络爬行器的结构如图1所示,主要由以下五个部分组成:

l)待爬行URLs队列 (URLs Frontier):存放着将要爬行的URLs。

2)DNS解析:决定从哪个服务器获取一个待爬行URL。

3)爬行:利用HTTP协议访问URL所对应的网页。

4)解析:从下载的网页中提取文本信息和超链接。

5)判断是否爬行:判断一个连接是否己访问,并且是否已存在于URLs队列中。

由于网络连接的存在,网络爬行器将网络上的网页集合看成是一个有向图,搜集过程从给定的包含一个或多个起始URLs的待爬行URLs队列开始,不断地从队列中移除URL,并依据HTTP协议下载相应的网页;提取出网页中的连接;判断连接是否已经被访问过,将未访问过的那些连接加入队列。整个过程循环往复,直到爬行队列为空或者达到预定的停止条件为止。整个过程可以被看作是沿着网页中的链接,按照深度优先、宽度优先,(如图2)或者其他策略遍历网络的过程。一个网络爬行器必须具有良好的健壮性,并且遵从机器人协议[3],还需要具有分布式、高性能、高效率、及时更新等特性。

2 主题爬行器

主题爬行器的设计是以通用爬行器为基础,它是对通用爬行器进行功能上的扩充。主题爬行器的核心问题是:通过当前的已知信息来计算每个连接的访问优先级,即,在爬行一个链接之前,需要计算该链接所指向的网页与主题之间的相关性。当然,这种预计有时会产生错误。所以,网络的主题局部性[4]越好,与同一个主题相关的网页链接的越紧密,主题爬行器的效率也会越高。

在通用爬行器的基础上,主题爬行器需要增加主题确立模块和相关度分析模块(如图3 所示)。主题确立模块用于确立爬行器所面向的主题;相关度分析模块用来计算网页与规定主题的相关度,这也是主题爬行器的核心,由它决定对页面的取舍。[5]

3 面向高校的主题爬行器设计

3.1 确立主题

确立主题是主题爬行器工作的基础。本文采用采用关键词集来确立主题,并且赋予每个关键词不同的权值。

权值的设置方法有两种:手工设置和特征提取。特征提取是指给出与主题有关的所有网页的集合,由爬行器自动提取这些网页里的共同特征,然后根据不同关键词的频率来确定权值。其优点是权值量化精确,但要求所选取的网页集合必须是具有代表性的,否则可能会出现比较大的偏差;手工设置的优点是实现简单,并且不会出现大的偏差,缺点是可能出现缺漏,权值的量化不够精确。因此,应该将这两种方法综合起来:

1)手工设置一组关键词并赋予权值;

2)通过元搜索引擎查找与这组关键词对应的网页;

3)按权值的比例选取相应数量的网页;

4)由爬行器自动提取这些网页的集合的特征,得到一组新的关键词及权值。

面向高校的主题的爬行器,需要预先设定与高校有关的一些关键词。比如:

url中的关键字主要有:“.edu”、“university”……

meta中的关键字主要有:“大学”、“本科”、“研究生”、“教育”……

正文中的关键词有:“教育”、“校长”、“学生’,、“老师”……权值一般。

3.2 抓取器的实现

借助C#可以读取网页页面中的内容,将网页的信息以html的格式读取到本地,然后再对所下载的代码进行分析,下载网页信息的核心代码如下:

publiec string ReadPage()

{

String getWebInfo; / /获得页面中的所有内容

HttpWebRequest myWebRequest;

If (Get_Ur1= =" "||Get_Url= =null)

{

return”bad”;

}

try

{

myWebRequest=(HttpWebRequest)WebRequest.Create(Get_Url);

}

catch(Exception ex)

{

LogUtil.ERROR(type,ex.Message);

return“bad“;

}

myWebRequest.Method=Web_Method;

myWebRequest.ContentType="applieation/x-www-form-urlencoded";

myWebRequest.Accept="image/gift,image/x-xbitmap,image/jpeg,

-image/pjpeg,application/x-shockwave-flash,applicationn

-/vnd.ms-powerpoint,application/vnd.ms-excel,applieation

-/msword,*/*";

myWebRequest.UserAgent="Mozilla/4.0(compatible;MSIE 6.0;W

-indows NT 5.1:SVI;.NET CLR1.1.4322)”;

myWebRequest.KeepAlive=false;

try

{

HttpWebResponse res=(HttpWebResponse)myWebRequest.GetReponse();

if(res.StatusCode= =HttpStatusCode.OK&&this.IsReadContent= ="yes"

// 若返回的信息表明网页存在,并且需要页面内容

{

StreamReaderreaderWeb=newStreamReader(res.GetResponseStr

-eam(),System.Text.Encoding.GetEncoding(Get_WebCode)); // 读取网页内容;

getWeblnfo=readerWeb.ReadToEnd(): //下载网页内容

readerWeb.Close();

res.Close();

return getWebInfo:

}

//若返回的信息表明网页存在,但是不需要页面内容

else if (res.StatusCode= =HttpstatusCode.OK&&this.IsRea

-dContent= ="no")

{

res.Close();

return res.StatusCode.Tostring();

e1se

{

res.Close();

return res.StatusCode.Tostring();

}

}

cateh(Exception ex)

{

LogUtil.ERROR(type,ex.Message):

return ex.ToString();

}

}

3.3 相关度分析

为了使爬行器获取的网页能够向主题无限靠拢,需要对网页进行过滤,将主题相关度较低的网页(小于设定的闭值)剔除,这样将不会在下一步爬行中处理该页面。一个页面的主题相关度如果很低,说明该网页很可能只是偶尔出现某些关键词,该页面的主题可能与指定主题几乎没有什么相关性,因此处理其中的链接几乎没有意义。[6]

可以先指定一个闭值r,然后调用面向“高校”的主题关键字集合,即特征向量计算整个页面的相关度值p,如果p>=r,就可以认为该页面和主题是比较相关的。r需要根据经验与实际要求进行确定,若把r设得较小,可获得较多的页面;把r设得较大,可获得较少的页面。

对于已经下载好的页面,需要获取页面中包含的url,依据HTML协议,每一个链接都能概括它所指向页面的内容。在网页中有一个链接模型为text,由于网页结构的明确性,text是精确且概括的描述性文字,因此可采用Best-First 算法[7]来对链接文本的相似度进行计算,如公式(1)所示:

(1)

其中,SIM(q,p)――链接文本p与特征向量q的相关度,Wkq――关键词k的权值,Wkp――关键词k在链接文本p中的权重值,通常采用用tf- idf 方法计算。将计算出的SIM(q,p)与预先设置的闭值r进行比较,若SIM(q,p)>=r,就可以认为该页面和主题是比较相关的,反之则可将该页面剔除。

参考文献:

[1] Verykios V S,Bertino E,Fovino I N,et al.State - of - the - Artn Privacy Preserving Data Mining[M].SIGMOD Record,2004,33(1):50-57.

[2] Najork,Marc,Allan Heydon.High-Performance Web Crawnicaling.[R].Tfchnical Report 173,Compaq Systems Reasearch Center,2001

[3] Wong C.The Robot Exclusion Standard[C].web Client Programming with Perl:O'Reilly,1997.

[4] 陈竹敏.面向垂直搜索引擎的主题爬行技术研究[D].济南:山东大学,2008.

[5] 汪涛,樊孝忠.主题爬虫的设计与实现[J].计算机应用,2004(6).

[6] 焦小明.面向校园的垂直搜索引擎的设计与实现[D].上海:复旦大学,2009.

[7] 林海霞,原福永,陈金森,等.一种改进的主题网络蜘蛛搜索算法[J].计算机工程与应用,2007,43(10):174-176.

[8] 李勇,韩亮.主题搜索引擎中网络爬虫的搜索策略研究[J].计算机工程与科学,2008(3).

上一篇:从信息传输可控性角度论述信息传输人责任界定... 下一篇:Web应用安全问题研究