李慧 赵旭
【摘要】随着互联网上的信息每天都以指数数量级的速度爆炸性增长,Internet中的资源令人眼花缭乱,如何能够迅速准确地找到所需的信息,已成为众多信息检索人员所面临的一个问题,而搜索引擎在这方面起到了具足轻重的作用。本文主要分析了基于精确搜索引擎中网络爬虫的设计与实现,并提出了相应的方法和手段。通过研究精确搜索引擎技术,分析了一般的网络爬虫的工作原理,在此基础上设计了一个更加精确的搜索引擎系统,在这个系统中将内容和链接运用逻辑域的方法相结合,用户可以根据选择的关键词的逻辑关系来进行搜索。
【关键词】精确搜索引擎;网络爬虫;算法;逻辑域
一.引言
随着科技的进步,通用搜索引擎无论是在技术上还是在硬件条件上都有了明显的提高。但是,即使最大通用搜索引擎到现在为止也只能覆盖不到一半的网络,并且对搜索数据库的更新,一般至少也需要数十天甚至数百天。其原因是因为想要通过搜索引擎的搜索功能去满足用户想要得到的查询结果,虽然这种通过“广泛撒网”的搜索方法有其不可替代的优点,但却往往给用户带来太多不必要的垃圾信息。
二.精确搜索引擎
2.1精确搜索引擎的特点
通用搜索引擎的缺点来自于它们力图覆盖整个网络,并且不通过任何處理过程便把所有可能的主题作为查询服务的目标。精确搜索引擎由于其面向主题就克服了以上缺点,具备更高的查准率和查全率,因为它们将搜索信息的内容限定在一定的领域内有效锁定了搜索的范围。一个面向主题的搜索引擎用一部分符合逻辑关系的事先选定好的网页作为体现用户兴趣的样本。为了获得更多相关的网页,主要精确搜索引擎从一个给定的集合出发,对基于内容的网页相关度算法进行分析。
精确的搜索引擎其功能要求与通用搜索引擎是不相同的,主要体现在以下几点:
(1)通用搜索引擎的目标是对整个Internet的资源进行收集,搜集的网页越多,搜索引擎就越全面,而面向主题的搜索引擎只需要针对既定内容的既定主题进行搜集,两者在搜索的网页信息量上在不同的数量级上。
(2)通用搜索引擎几乎要对网页内所有的信息都进行分析、检索,而精确搜索引擎的网页抓取准确性很高,能够提取用户 关心的主题逻辑进行搜索,搜索的范围相对缩小,这样更有利于快速搜集到用户关心的网页。
(3)在通用搜索引擎中搜索的是整个篇幅的网页,而精确搜索引擎只索引出网页内与主题相关的信息,更有利于用户查找信息。
2.2网络爬虫的应用
网络爬虫可以被看作是为Internet开发的最有用的工具之一,它能够从数以千计的各不相同的站点中收集信息。若将真个互联网看做是一个网站,那么网络爬虫就可以利用这个原理把互联网上所有的网页都抓取下来。
相对于通用网络爬虫,主题精确搜索引擎的爬虫还需要解决三个主要问题:
(1)对抓取目标的描述或定义的逻辑关系判定
(2)对网页或数据的分析与过滤
(3)对URL的搜索策略
网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的陷入问题,常见的是广度优先和最佳优先方法。
三.高精确搜索引擎的设计
本文的设计采取了面向主题的精确搜索策略,在针对搜索内容中关键字的查询时确定下一个主题,应用爬虫程序直接从站点数据表中抓取网页。由于Internet上的各种信息在爬虫爬行过程中都会遇到,所以在创爬虫建时不仅需要确保它能够检索数据,而且还要做到分析数据和理解数据。由于从Web站点找到的大部分数据都存储在HTML文档之中,因此HTML的数据类型为本系统中所关心的数据,采用这种做法大大缩小了查找的范围,同时也为下一步的网页解析工作奠定了基础。本系统的网络爬虫分为前台和后台两个部分。前台为用户提供添加网址,作为种子站点,其后再选择主题进行索引。后台则是一个完整的爬虫程序,其构造是采用的多线程技术,这种构造能够从种子站点数据表中读取网页地址,并且分析网页代码。
本着一切立足于实际的理念,依据拟定的系统实施方案,对整个系统各方面的需求进行了分析。在本次系统的实现上,主题精确搜索的数据采集是通过爬虫程序来完成,与此同时使用了多种辅助策略。爬虫程序的采集器从万维网中采集回来数据经过既设的处理(保留主题范围内的网页,丢弃范围之外的网页)。其运行的方法是在每爬行完一个页面后,它就会抽取出相应网页中的链接,再剔除不可能与主题相关的链接和自己爬行的链接,然后将余下的链接按一定的顺序加入到链接列表中。排序的规则就是预测被连接的页面与主题的相关程度,相关性高的链接将会排在列表靠前的位置。最后,取出列表中排列最前的链接,那么用户就得到了与主题相关的页面。
本系统模型设计基本上可以看作为:
(1)从网上抓取网页
(2)建立数据库
(3)主题相关度分析
(4)按照相关度排序
通过对本系统模拟发仿真实验,充分说明了一个主题爬虫设计方案的可行性,以主题爬虫为基础可以开发主题精确搜索引擎,结合到具体应用,主题爬虫可以在受限领域内进行面向主题的信息采集。由此可见,主题精确搜索引擎虽然小巧,但是由于它使用了多种精确主题搜索引擎,使得它在一个特定主题下比通用搜索引擎要准确贴切,这样,用户就能更快找到需要的信息。
该系统所定义的是面向主题的精确搜索引擎,就总体而言,构造了一个可以从自定义的web站点下载所有HTML文件的多线程网络爬虫程序,所谓多线程是指同一个程序在同一时刻运行超过一个任务的能力,采用多线程技术可以提高爬虫的运行效率。一个网络爬虫需要同时下载多张网页,想要完成此任务,爬虫程序必须向服务器发出请求然后接受这些网页。程序等待响应的过程就是程序执行的一个瓶颈,因为尽管程序已经请求了网页,但必须要等待请求经过Internet向web服务器传输。这种情况下,多线程技术将数个网页的等待时间结合在一起,而不是一个接一个的执行。当爬虫程序使用线程时,可以在计算遍历算法和其他辅助运算时同步访问网站,这样更有利于爬虫的后台操作。通过在多个作业之间的切换,可以使程序充分利用CPU的占有率和网卡资源。
四.高精确搜索引擎的优点和前景
主题搜索引擎已成为一个新的研究、开发领域,在此基础上,也应当对网络爬虫进行适当改进,因为在局域网的环境下,CPU的速度、硬盘速度、局域网速度等都会影响网络爬虫的线程性能,其中某一个环节的迟缓都将会对爬虫的抓取和分析性能不利。此外,Internet领域的快速发展,新的网站、新的工具层出不穷,一个好的精确的搜索引擎需要不断地跟新和提高。
本文中设计的系统与现有的知名搜索引擎相比,其突出优点就是利用逻辑域的判别分析方法把主题关键词联系起来,使得检索结果逻辑匹配度提高,能够达到精确搜索的目标。同时,由于设计为“金字塔”型任务承担模式,各个服务器能够分担适量的检索任务,顶级服务器由于是站在基础服务器的基础上进行工作,所以其承担的任务量并没有增加。此外,由于在基层服务器就主动放弃检索相关度不高的网页,所以在总检索网页数量大幅度下降的情况下,检索出来的网页质量会大幅增高,能够在逻辑上更好地匹配关键词,从而能够达到精确搜索的目的。
参考文献:
[1]卢亮,张博文.搜索引擎原理、实践与应用[M].北京:电子工业出版社,2007.
[2]谢新洲.网络信息检索技术与案例[M].北京:北京图书馆出版社,2005:29-30.
[3]周立柱,林玲.聚焦爬虫技术研究综述[J].计算机应用,2005,25(9):1965-1989.