MicrocomputerApplicationsV01.25,No.2,2009文章编号:1007-757X(2009)2—0056-03
技术交流
微型电脑应用
2009年第2S卷第2期
基于
Java技术的主题
网络爬虫的研究与实现
林海霞
司海峰
张微微
摘要:主题网络爬虫的
搜索策略是基于领域的搜索引擎的核心技术,爬虫搜索算法的性能直接关系着搜索引擎的性能。经过研究发现“最好优先算法”在重多搜索算法中表现的性能最优,但它本身也存在着收敛速度过快的缺陷,导致搜索引擎的“查全率”不高。针对这种情况,对“最好优先算法”做了调整与改进,并用Java技术给予了实现。关键词:网络爬虫;专业搜索引擎;Java;线程中图法分类号:TP391文献标识码:A
0引言
当今,Intemet飞速发展,互联网上的信息呈“爆炸式”增长,此时人们要想准确而高效地获得自己想要的资源并非易事。而基于某一领域的专业搜索引擎的应用恰恰能解决通用搜索引擎中资源针对性不强的
问题。对于基于某一领域的专业搜索引擎而言,丰题网络爬虫(w曲Crawler)是一项核心技术,它的性能的高低对于专业搜索引擎有军关蕈要的影响。而目前主题网络爬虫的搜索性能在一定程度还存在着缺陷,主要体现在:网络爬虫对整个Web搜索空间中信息资源的分布情况总是未知的,因此不能很好地预测自己的爬行方向,这样就不能高效地获得相关的资源信息。本文针对这种情况提出了一种网络爬虫的新算法,并用Java技术给予了实现。
Best--First算法在这几种算法中的性能最优。所以,重点对Best--First算法做了大量的研究。经过研究发现,Best--First
算法虽然抽取链接的准确率很高,但是这种算法的收敛速度过快,不能在很』~的范围内进行全面搜索,也就是说这种算法的“查全率”不高。如何在这种算法上进行改进,提高它的“查全率”也就成了关键问题。1t3算法改进假设图l为采用Best-First算法进行搜索的过程示意图,其中po,p2,d0,dl,d2,d3,d4为主题相关贞面,P1为无关页面,网络爬虫从po开始搜索,一般Best-First算法的思想是:Crawler经过一定的计算如果发现pl为与主题无关的页面,而do为与主题相关的页面,它就会将P。这个链接节点忽略,沿着lo这条路径进行搜索。这样就会导致P2,dl,d2,d3,d4这些潜在的与主题相关的页面也被网络爬虫所忽略,从而导致搜索的整体“回报率”不高,不能使网络爬虫得到全局范围内的
l主题网络爬虫概述
1.1主题网络爬虫的T作原理整个搜索引擎
系统主要包含四个模块,分别为信息搜索模块、信息索引模块、信息榆索模块和用户接Lj部分。而网络爬虫便是信息搜索模块的核心。其
工作原理町描述为:Crawler从一个或一组URL出发,访问其所对应的Web页,抽取其中相关的超级链接,然后Crawler将所抽取剑的链接加入到一个待访问的URL队列中,用于网络爬虫进行下一步的访问。随着新的超级链接被访问,又有新的超级链接被抽取加入到队列中,如此不断进行下去,从而实现对整个Intemet范围内的所有网页进行访问。1.2网络爬虫算法分析到目前为止,已经f{{现的网络爬虫的搜索算法主要有早
最优解。
p0
10
4
d3
po,p2,do,dl,d2,d3,d4为相关页面;
PI为无关页面;
期的Breadth--First(广度优先)算法和Depth—.First(深度
优先)算法,后来出现的SharkSearch算法、FishSearch算
10,11,b,13,14,15,16,为访问路径;
图1嘲络爬虫搜索过程示意图
法。以及基于链接结构的Page--Rank算法,基于网页内容的Best--First(最好优先)算法等【lI。以上算法虽然在某一
方面存在着优越性,但综合起来评价性能都不爆如人意。本文对以上算法在相同实验环境卜.进行了性能评价,结果发现
本文所提出的算法的基本思想是:虽然网络爬虫发现pl是与主题无关的链接节点,但它暂时也小会放弃这个链接,它会继续验证pl的邻节点是否存在与主题非常相关的页面。