APP下载

面向软件构件的网页爬虫技术研究

2014-04-29赛买提·艾力玉素甫·艾白都拉

电脑迷 2014年9期
关键词:爬虫搜索引擎网页

赛买提·艾力 玉素甫·艾白都拉

摘 要 面向构件的垂直搜索引擎是该领域内的一个研究热点。本文介绍面向构件的主题爬虫的设计与实现,提出一种基于URL的面向构件的主题爬行算法,该爬行算法以构件资源在构件库网站的所处的位置,对URL队列进行优先级计算。对页面相关性判别,采用刻面关键词出现的频率来计算。实验结果表明该方法可行而且更有效。

关键词 软件构件 构件描述 主题爬虫 相关度计算

中图分类号:TP3 文献标识码:A

0引言

软件复用是解决软件危机的一条切实可行的途径。软件构件技术是软件复用的主要形式,也是当前软件复用研究的热点。成功的实施软件复用,需要大量而丰富的软件构件资源。目前在Internet上已有大量的构件资源,但在实际工作中想迅速找到适用的构件是非常困难的,传统的通用搜索引擎并不能对这些构件进行有效的搜索。

垂直搜索引擎技术的出现与发展为实现Internet上构件资源的搜索提供了解决思路和技术保证。垂直搜索引擎只抓取索引特定主题的信息,可以向用户提供更加专业化、个性化的搜索服务,可大幅度提高某个主题信息的查全率和查准率,有效地解决了通用搜索引擎对某个主题覆盖率过低的憋端。

然而,目前市场上并没有出现面向构件的垂直搜索引擎,学术界对构件的存储与检索仍然停留在单一构件库的层面。在Internet已经普及的今天,传统的单一的构件库技术显得有些滞后,如果能为软件复用人员提供一个语义丰富检索方便的构件检索平台,必将有助于基于构件的软件开发方法在实践上的普及应用。

1国内外研究现状

为了利用Internet上丰富的构件资源,帮助开发人员获取所需的构件,研究人员开始探讨如何在Internet上获取构件。

卡耐基梅陇大学的Seacord等人提出了Agora系统来在Internet上获取构件。该系统由若干个Agent组成,这些Agent分别用来获取如JavaBean、ActiveX等不同形式的构件。Extreme Harvest通过语法结合语义的方式来对Internet上的构件进行过滤,寻找满足用户需要的构件资源。MoReCOTS则是利用元搜索引擎技术并以构件提供网站为内容来源向用户提供一个构件检索接口。Chen等人提出了一种构件获取方法SE4SC,该方法是首先定义一个构件描述模型SCDM,并利用网络爬虫在Internet上抓取其它满足SCDM格式要求的构件。

2网页爬虫的设计

图1是面向构件的主题爬虫系统结构图。爬虫从种子URL开始,向服务器发送HTTP 请求,请求URL 对应的资源,分析下载的页面,提取链接,将链接加入URL 队列,以便后续读取。

2.1页面的相关度计算

通过观察发现构件库网站对构件的描述用<刻面,术语>二元组,而且所使用的刻面关键字比较集中,如图2所示。本文通过刻面关键字在网页中的出现频率来计算网页的主题相关度。文档包含的关键词越多,页面的相关性就越高。如果关键词数量大于指定的阔值,则网页与主题相关,否则网页与主题无关。

2.2主题爬行算法

一般网站结构可分为两种,即扁平式结构和树形结构。扁平式结构是指把全部的网页存储在相应网站的根目录下的结构,这种结构总体上来说比较适用于一些小型的网站。另一种结构就是树形结构,在树形结构,首先是根目录下分成很多的子目录,之后在各个子目录下分别存储从属于该目录下的网页文件。很显然,树形结构可以非常方便的列出某一网站的内容架构,因此,树形结构也是大型网站必定会使用的结构方式。

通过观察分析,得知构件库网站结构大致相同,图3是构件库网站的结构示意图。从图中可以看出爬虫要寻找的主题网页都集中在一个目录下,而且位置相对固定。本文采用构件库网站的这一特性来计算待爬行URL的重要度。

主题爬行算法的本质是对待爬行URL进行调度策略,使得爬虫在更短的时间、更节省网络资源的条件下,抓取更多的主题相关网页。由于构件页面分布特性、构件库网站异构性、锚文本相似度计算的困难性等问题,不可能对全部待爬行URL进行优先级计算。本小节提出了一个在构件库网站内对URL进行重要度计算的方法,其基本思想是爬虫从种子网页开始,获取网页中的子链接,如果抓取的子链接与父链接的域名相同,则计算它的重要度,重要度大于阔值%[,则进入URL队列。如果子链接与父链接域名不同,则丢弃。

该爬行算法通过比较待爬行URL和主题相关网页的URL来计算待爬行URL的重要程度。首先根据待爬行URL和主题相关网页的URL画出结构图,然后计算待爬网页存储目录和主题相关网页存储目录之间的路径长度。待爬行URL的重要度大小用如下公式计算:

(1)

该爬行算法使用的相关网页的URL值是一同种子给出。

3实验结果分析

本节从中文构件库上海构件库、51Component、慧都控件库和英文构件库ComponentSource网站选择某一构件主题相关网页作为种子网页。其实验结果表1所示。实验结构表明,该爬行算法对构件产品的抓全、抓准率比较高,达到了预期的目的。通过公式2计算,收获率(HarvestRate)达到了34.6%。

(2)

4总结

随着软件产业的迅速发展,软件复用技术,尤其是基于构件的软件复用技术正逐步走向成熟,构件及构件库作为基于构件的软件开发的基础设施,正逐步得到软件开发人员的重视,互联网上出现的构件库以及提供众多构件资源的网站,为软件开发者提供了更高的思路。本文正是这一背景下,研究了面向构件的主题爬虫。

基于URL的爬行算法对种子网页的选取要求比较严格,种子网页越多,抓取网页数量越多,构件库网站构件数量越多,收获率就越高。该爬行算法比较适用于专业构件库网站中的构件抓取。但Internet上散落存在的构件资源的获取还没真正得到解决。

参考文献

[1] M.Douglas Mcilroy. Mass-Produced Software Components.in NATO Conference on Software Engineering 1968.88~98.

[2] R.C.Seacord,S.A.Hissam,K.C.Wallnau. Agora:A Search Engine for Software Components.IEEE Internet Computing.1998,VOL.6(2):62~70.

[3] Oliver Hummel, Colin Atkinson. Supporting Agile Reuse Through Extreme Harvesting.8th International Conference, XP 2007:28~37。

[4] 郑瑾,王斌,陈松乔.Java Bean构件检索引擎.计算机工程.2003,Vol.29(20):45~46.

[5] 刘金红,陆玉良.主题网络爬虫研究综述.计算机应用研究.2007,Vol.24 (10):26-29.

猜你喜欢

爬虫搜索引擎网页
利用网络爬虫技术验证房地产灰犀牛之说
基于Python的网络爬虫和反爬虫技术研究
基于CSS的网页导航栏的设计
利用爬虫技术的Geo-Gnutel la VANET流量采集
基于URL和网页类型的网页信息采集研究
大数据环境下基于python的网络爬虫技术
网页制作在英语教学中的应用
网络搜索引擎亟待规范
Nutch搜索引擎在网络舆情管控中的应用
基于Nutch的医疗搜索引擎的研究与开发