南京航空航天大学 周 萍
基于关键词的主题网络爬虫
南京航空航天大学 周 萍
【摘要】通常来说,用户从搜索引擎获取的网页中,大部分都是不符合特定需求的,只有一小部分才是想要的结果。网络爬虫在搜索引擎中扮演着重要的角色,起着关键性的作用。本文主要讲述了基于关键词的网络爬虫,通过使用相关性决策机制和本体的知识来设计出最合适的爬虫抓取路径。和传统的网络爬虫相比较,本文设计的爬虫具有最优性,并通过高准确性来提高搜索效率。
【关键词】网络爬虫;基于特定主题的网络爬虫;本体;关键词;知识路径
网络爬虫主要下载主题相关的网页或者满足用户需求的特定网页,而不是像传统的搜索引擎那样下载整个Web网页库。因此,主题爬虫的基本要求是选择那些满足用户需求的网页。链接分析算法和网页排序算法一样,通常根据URLs的相关性和搜索策略对URLs进行排序,然后优先下载那些特定网页。
本文提出了基于关键词的主题网络爬虫算法,该算法是根据优先级和领域本体找出网页的URLs 。此外,知识路径在寻找主题相关网页中也发挥着重要的作用。
网络爬虫是搜索引擎的重要模块。在传统的网络爬虫中,将种子URL作为爬虫工作的初始URL。在分析了种子URL的网页内容之后,爬虫开始下载网页,然后抽取出所有的超链接,并把这些链接存储到URL队列中,递归执行上述过程,直到获得了相关结果。
网络爬虫的关键问题就是从web中只下载重要的网页,然后分析这些网页中URL的优先级,并根据优先级放到URL队列中的合适位置。网路爬虫的两大问题如下所示:(1)计算爬虫抓取的网页的优先级;(2)设计爬虫抓取网页的爬行策略。
1.1背景
如今网络的规模越来越大,信息的更新率变快。网络拥有大量的数据信息,所以爬虫需要根据URL的优先级来下载满足需求的网页。
爬虫根据领域知识下载一小部分网页,这些网页的大部分内容是主题相关的,因此没有必要从网上下载所有的网页。网页内容的主题重要度主要取决于链接和被访问量。因此,很有必要提出一个可靠的爬虫算法。
1.2爬虫算法的研究设计及具体步骤
爬虫算法的基本步骤是将URLs种子队列作为输入,然后重复执行分布式的步骤。从地址列表中取出某个地址,确认该地址的主机名,然后将网页翻译成对应的文档信息,接着抽取出其中的超链接。对于每一个被抽取的链接,检查它们的绝对地址,并把它们添加到URLs的列表中,前提是它们之前没有被访问过。该算法规则需要一个组件来存储下载的URLs队列。
此外,还需要将主机地址解析成以下三部分:(1)一部分用来下载文档;(2)一部分用来从超文本标记语言中抽取超链接;(3)一部分用来判断该地址之前是否被访问过。
本文设计的爬虫算法主要分六步,具体步骤如下所示:(1)选择一个URL种子作为算法的输入;(2)构造本体知识树,并找出知识路径;(3)下载初始输入URL对应的网页;(4)从下载的网页中抽取出超链接内容,并把它们插入到URL队列中;(5)挖掘更多的主题相关的URL,下载该URL对应的网页,并从中抽取出超链接,最后把这些超链接插入到URL队列中;(6)重复上述步骤,获得更多的主题相关的结果。
2.1实验结果
基于关键词的主题网络爬虫和传统的网络爬虫分别作了对比实验。实验中,软件系统和硬件环境是不变的。分别比较网络爬虫的关键词有本体和没有本体这两种情况。
实验中用到的参数是:Depth for looking out=2;Number of thread=5;Initial seed=1;Seed universal resource locator is=http:// www.google.com;Concept in ontology=Java。
基于相同的软件系统和硬件环境,实验获得的结果如表2.1所示:
表2.1 两种爬虫系统的比较
2.2本体和知识路径
本体是结构信息的其中一项技术,它也叫树或者图。本体将信息系统进行分层设置,分层的结构是一个有向无环图(directed acyclic graph ,DAG)。参考本体根据不同的关联关系设置了“is a”,“has a”,“part of”。本体被用来构造信息和过滤信息。
假设本体结构如图2.1所示,其中包括不同的结点以及相互之间的联系,这些联系代表了结点之间的关系。
本体结构类似于Google网页目录的分层目录结构。假如寻找“java”,知识路径是:Branch->computer->programming-> java。爬虫根据这条URL开始抓取网页,初始的URL种子是:http://www. google.com。在下载网页之后,从页面内容中寻找可用的链接(比如U1,U2……Un),然后把这些链接加入到URL队列中。这些链接U1,U2……Un需要被检查是否和关键词相匹配,爬虫的知识路径就是由这些关键词组成的。第二条URL是:http://www.google. com/references/computer.html,其中包含关键词“computer”,和图的第一层级的结点相匹配。第三条URL是:http://www.google.com/ references/computer/programming.html第四条URL是:http://www. google.com/references/computer/programming/java.html
上述算法不能通过“art”或者其他分支来找到目标节点“java”,因为父母结点“Computer”和“java”相关。
相较于其他网络爬虫来说,使用基于关键词的主题网络爬虫的优点是智能性、高效性、不需要关联性反馈。本文提出的爬虫算法减少了爬虫抓取网页的数量,因此爬虫抓取的时间变少,这是因为爬虫只下载主题相关的网页。 主题网络爬虫的目的就是获取主题相关的网页,舍弃主题无关的网页。本文设计了基于最佳知识路径的爬虫的本体,本体通过关联决策机制来获取网页。和传统的爬虫相比较,本文提出的爬虫具有如下优势:(1)从下载的网页中获取URLs的数目变少;(2)爬虫的抓取时间变少。
图2.1 本体的结构