背景及发展状况
万维网诞生以来其独特的魅力极大地激发了人类创作的积极性短短十几年便发展成为了目前世界上规模最大的公共数据源。然而人类的接受能力却是十分有限的因此便产生了一种能够高效访问网络资源的需求。在这种背景下通用搜索引擎应运而生如比较知名的Baidu、Google。
爬虫(Crawler)又称蜘蛛(Spider)或者机器人(Robot)是一种能够高效抓取网络资源的程序。通用搜索引擎设计中用于抓取网络资源的爬虫被称为通用爬虫这种爬虫的设计目标是尽可能快而多地抓取网络中的各种资源具有很强的通用性。但是随着万维网的不断发展及人类的进步通用爬虫的应用暴露出了很大的局限性。比如大量不相关网络资源被抓取、严重浪费网络带宽、不能够支持语义查询等等。为解决所面临的问题用于定向抓取网络资源的主题爬虫被提上了研究日程。
最佳优先爬虫是一种简单、高效的主题爬虫。在页面主题相关度评价上它采用了经典的向量空间模型;而在对页面中所含链接进行主题相关度预测打分时则充分考虑了链接锚文本、链接所在页面的主题相关度、兄弟链接等等各种启发式信息。随着人们对主题爬虫认识和研究的深入各种具有智能性的算法被相继用于了主题爬虫的设计实现如蚁群算法、遗传算法、人工鱼群算法等等。这类智能爬虫所搜集到的网页具有更强的主题相关性并且在查全率、查准率上有了很大的提高。
研究分析
(1)异于通用爬虫主题爬虫设计中加入了主题相关度评价模块。所以不能苛求它达到通用爬虫的工作效率但是我们应该将其维持在可以接受的范围之内。因为无论主题爬虫的设计有多么巧妙如果工作效率不能提升上去是不可能得到用户认同的。
(2)为充分利用CPU空闲时间(包括其他各种系统资源)、提高主题爬虫的工作性能采用多线程编程技术来设计实现主题爬虫。
(3)主题爬虫需要与Web服务器进行礼貌的交互:其一要通过HTTP请求中的User-Agent域报告自己的身份;其二要遵循爬虫阻止协议分析robots.txt文件。
(4)由于相同或者相似页面的重复抓取不仅会浪费网络带宽、系统资源还会严重降低用户体验主题爬虫应该避免同一个网页或者相似网页的重复抓取。
(5)主题爬虫工作过程中应尽力避免爬虫陷阱以免对Web服务器造成不友好的DoS攻击。
(6)爬虫程序通常都是在无人照顾的情况下运行的因而设计一个用于事后问题诊断的爬行日志则显得尤为重要。并且所设计的日志文件应至少包括时间戳和URL以便同时为之后的数据统计分析打下基础。
(7)主题爬虫的工作性能是受多方面因素影响的如网络带宽、系统资源、种子质量等。需要支持用户对主题爬虫进行一些爬取参数上的设置以便更好的发挥主题爬虫的工作效率。