龙源期刊网 http://www.qikan.com.cn
主题爬虫技术的深入探究与实现
作者:高占江 韩丹
来源:《电子技术与软件工程》2015年第19期
摘 要本文介绍的主题爬虫技术注重对某个专业领域数据信息的深度搜集,摒弃传统爬虫技术的广泛搜索,针对某个具体行业或者领域挖掘更加准确更加专业的数据。对主题爬虫技术的需求、爬行流程和策略以及与主题相关度的判断作了详细的讨论。 【关键词】网络爬虫 主题相关度 网络蜘蛛 权值 1 引言
主题爬虫技术更加注重某个专业领域的信息,针对某个主题收集相关专业领域的数据。由此诞生出的主题搜索引擎擅长对某类信息提供检索服务,更加注重信息的深度和精确性,必将成为搜索技术领域的新趋势。所以,主题爬虫技术抓取到的数据的优劣直接决定了主题搜索引擎的的质量的高低。 2 主题爬虫的策略
主题爬虫主要实现对链接的智能取舍和对网页的智能过滤,只爬行它认为与主题相关的网页并且下载存储。
2.1 “待访问队列”初始化
初始网页队列的选取直接影响到爬行到的网页与主题的相关程度。首先指定初始种子URL,当然这个URL在某个专业领域是比较知名的,本文采用关键词集来确定主题,指定几个不同关键词来描述(反应)某个主题,其中每个关键词指定不同的权值,使用特征提取的方法给每个关键词指定不同的权值。针对给定的权威网页,程序提取每个关键词在权威网页中出现的词频来表示关键词的权值,这个赋予关键词的初始权值称之为初始关键词的权值,给出关键词集的定义:
HashtablekeyWords = newHashtable();
通过计算每个关键词在初始的URL指向的网页内容中出现的次数,给每个关键词赋予初始的权值。对初始URL的网页进行链接的提取,我们对所有的提取的URL的权值均赋值为最大值1。将每个链接抽象为自定义的PriorityURL类型后,存放在队列中,为了在队列中能够按照类的某个属性(这里指每个URL的权值)进行自动排序,排序的目的是为了我们从队列中能够优先获取权值大的URL进行爬虫,这样就能够保证爬虫能够最大限度的爬取跟我们主
龙源期刊网 http://www.qikan.com.cn
题相关的网页,为了实现这一功能,自定义类PriorityURL的时候,它需要实现接口Comparable,并重写compareTo()方法。这样实现了自定义类型能够按照某个属性进行排序,需要把类的多个实例(URL对象)储存在一个可以实现排序的队列中,下面给出队列的定义:
PriorityBlockingQueuewaitforHandling = new PriorityBlockingQueue();
从初始URL页面中提取出的链接并赋予权值为1后抽象成PriorityURL的实例添加到“待访问队列”waitforHandling中,这样队列中的URL会按照权值从大到小排队,我们每次去访问队头即权值最大的URL,从而保证优先访问与主题相关度大的链接。 2.2 网页与主题相关度计算
在对“待访问队列”完成初始化后,只是预先估计了链接URL与主题相关的程度大小。这个URL是否与我们的主题是否相关,必须使用量化的指标来判断,首先规定一个阈值,当计算出的相关度值大于这个阈值时则认定为符合要求,否则认为它与主题无关。通过这个URL所指向的页面内容来判断是否相关,因此对于这个URL要下载其页面内容,这里对要判断的这个URL我们称之为目标URL,根据初始指定的关键词集,计算所有关键词在目标URL网页中出现的词频(权值)。计算目标网页与主题相关度的大小使用余弦度量法。我们已经统计出关键词在目标网页中的权值,关键词的初始权值已经在权威网页中得到,利用公式1可以求得主题相关度的大小值。 (1)
其中Wαi表示设定的第i个关键词的初始权值,Wβi表示目标网页中第i个关键词的权值。
2.3 “待访问队列”的维护
计算出目标URL与主题相关度大小后,与我们指定的阈值(小于1)进行比较,一般来说,指定的阈值为0.9,指定的阈值越大,爬虫爬取的URL与主题密切度越大,但爬取到的相关网页的数量较少;若指定的阈值较小,则爬虫程序能够爬取到大量的网页,不乏其中有与主题相关度较小的网页。所以这里阈值的指定由用户自行选择。如果计算出的余弦值小于阈值,则认为它与主题无关,直接丢弃,爬虫继续从“待访问队列”中读取权值最大的URL继续爬行。若计算出的余弦值大于阈值,保存这个URL,这个URL就是符合要求的,进而提取其中包含的所有链接,计算链接的权值,构造PriorityURL实例放入“待访问”队列中。提出基于页面内容评估链接的最优最先爬取策略计算URL权值的算法:
(i) 根据余弦度量法公式计算一个页面与主题的相关度,记为γ。
龙源期刊网 http://www.qikan.com.cn
(ii)提取该页面包含的所有链接。 (iii)计算页面中链接的总数量,记为t。
(iv)计算这个URL的级数(层数),即URL中根据“/”分割的层次数目,记为l。 利用公式γ/(t*l) 得到所有链接的权值,生成PriorityURL对象保存在“待访问队列”中。这样就使得爬虫能够循环往复,无限扩展爬取的范围,直到满足用户的需求。 3 结语
本文主要讲述主题网络爬虫程序的功能需求及爬去算法,对最有最先算法进行了改进,提出了基于页面内容评估链接的最优最先爬行策略,实验证明,主题爬虫搜索到的数据与主题保持了很好的相关度,更加有利于对某个专业领域内数据的深度挖掘。 参考文献
[1]王芳.深入解析Web主题爬虫的关键性原理[J].微型电脑应用,2011,(15). [2]刘汉兴.主题爬虫的搜索策略研究[J].计算机工程与设计,2008,(3). 作者简介
高占江(19-),男,山东省潍坊市人。硕士学位。现为青岛科技大学助教。研究方向为应用软件研发。
韩丹(19-),女,山东省潍坊市人。硕士学位。现为青岛科技大学助教。研究方向为应用软件测试。 作者单位
青岛科技大学 山东省高密市 261500