资源描述
毕业:主题网络爬虫的研究与实现(完整版)资料
(可以直接使用,可编辑 优秀版资料,欢迎下载)
C. select * from TEACHER where 职称 in("教授", "副教授")
【答案】默认值
38. SQL语言具有两种使用方式,分别称为交互式SQL和________。
endfor
4. 清除主窗口屏幕的命令是________。
23、交换机端口可以分为半双工与全双工两类。对于100Mbps的全双工端口,端口带宽为__D___。
CLEAR
13、VLAN(虚拟局域网)是一种将局域网从__逻辑上划分网段,而不是从__物理上划分网段,从而实现虚拟工作组的新兴数据交换技术。
【答案】B
【答案】SET,获奖次数>=5
本 科 毕 业 论 文
主题网络爬虫的设计与实现
Design and implementation of subject-oriented crawler
姓 名:路 刚
学 号:234
学 院:软件学院
系:软件工程
专 业:软件工程
年 级:2005级
指导教师:史亮 副教授
二〇〇九 年 六 月
摘 要
目前信息网上蕴含了大量的信息,但通过人工浏览的方法很难做到对信息的安全浏览、整理,很多有用的信息也就白白流失,产生了大量信息不能及时应用的矛盾,给用户造成了很大的不便,为了解决这一问题,搜索引擎这一新热点技术应运而生,本文结合信息网的特征,运用信息抽取和网页解析技术,设计和实现了搜索引擎中最重要的部分——网络爬虫,以提供分类更细致精确、数据更全面深入、更新更及时的因特网搜索服务。
本文首先对概述了网络爬虫的发展概况,然后分析了网络爬虫的体系结构以及实现原理,并深入分析了主题页面在Web上的分布特征与主题相关性的判别算法,具体工作如下:
(1)爬虫部分,通过设计种子网站进行爬虫,下载尽可能全且与用户要求相符合的网站。
(2)网页预处理过程,包括分词、HTML解析和网页消噪。在对树节点进行裁剪的基础上,设计了基于样式的网页消噪方法,进一步提高网页消噪过程。
(3)主题相关性判断,包括特征提取和权值计算阶段。在特征提取阶段,通过组合文档频率,得到新的特征,达到降维和提高分类精度的效果。在权值计算阶段,结合信息增益、传统TFIDF算法和空间向量模型VSM算法,得到了更适合主题相关性判断的权值计算方法。
(4)最后,在MYECLIPSE平台上,实现了一个简易的网络爬虫系统,并简要分析了爬虫的运行效果,达到了令人满意的效果。
关键词:网页解析;TFIDF算法;VSM算法
Abstract
Currently there is lot of information in the public security information website,but it is not possible to visit and clean up all information only through artifical manner,so much import information would be lost,also would go aginst cracking a criminal case,which causes a great deal of inconvenience to users.To deal with this problem,search engine technology came into being the new hot spot.Based on the characteristics of information networks,the paper designed and implemented the most important part of search engine—Web Spider,using information extraction and web analytic technology to provide more detailed classification accuracy, data is more comprehensive and in-depth, more timely updates of Internet search services.
This paper first outlined the development of search engines and reptile research network status and then analyzed the architecture of topic search engine and depthly analysd the theme of the page in the Web on the distribution of subject characteristics and the identification algorithm.In this paper,the concrete work as follows:
(1)Spider part. By set seeds through the design of website, download as much as possible and with the whole site in line with user requirements.
(2)Page pre-processing process, including Word particiling, HTML parsing and page de-noising.
(3) To determine the relevance of the theme, including the feature extraction stage and the right value. In the feature extraction stage, through the combination of document frequency, new features, to achieve dimensionality reduction and improving the classification accuracy results. Value in the right phase, combined with information gain, TFIDF algorithm and the traditional vector space model algorithm, have been more suitable for the theme of the relevance of the right to determine the value of the calculation.
(4) Finally, in MYECLIPSE platform to realize a simple network system reptiles, and reptiles a brief analysis of the effect of the operation, reached a satisfactory result.
Key words: page analysis; TFIDF algorithm; space vector algorithm.
目录
第一章 绪论 1
1.1 选题背景和研究意义 1
1.2 搜索引擎的发展 1
1.3 国内外研究现状 3
1.4 本文的主要工作和论文结构 5
第二章 网络爬虫工作原理 7
2.1 网络爬虫在搜索引攀中的地位 7
2.2 网络爬虫的基本原理 9
9
10
2.3 内容提取 11
2.4 主题页面在web上的分布特征 12
2.5 本章小结 14
第三章 网络爬虫的关键算法 15
3.1 网页搜索策略 15
3.2主题爬虫的搜索策略 16
16
19
3.3 主题相关性算法 21
21
23
3.4 本章小结 24
第四章 主题爬虫的分析与设计 25
4.1 主题爬虫的体系结构 25
4.2 初始种子选取和URL队列维护 26
26
27
4.3 网页解析 27
28
29
4.4 主题相关性算法实现 30
31
31
34
38
4.5 建立索引 38
4.6 系统实现 39
4.6 总结 41
第五章 总结与展望 42
5.1 本文总结 42
5.2 研究展望 42
参考文献 43
致谢 44
Contents
Chapter 1 Introduction 1
1.1 Background of the topics and research significance 1
1.2 History of the development of search engines 1
1.3 Research status at home and abroad 3
1.4 Main work and structure of this paper 5
Chapter 2 Working principle of crawler 7
2.1 Status of crawler in search engine domain 7
2.2 The basic principles of crawler 9
Architecture of subject-oriented crawler 9
Introduction of module function 10
2.3 Information extraction 11
2.4 Distribution features of subject-oriented page on web 12
2.5 Summary of this chapter 14
Chapter 3 Key algorithm of crawler 15
3.1 Web searching strategy 15
3.2 Searching strategy of subject-oriented crawler 16
Link-based relevance algorithm 16
Content-based relevance algorithm 19
3.3 Subject relevance algorithm 21
VSM(Vector Space Model) 21
Relevance algorithm about web page subject 23
3.4 Summary of this chapter 24
Chapter 4 Analysis and design about subject-oriented crawler 25
4.1 Architecture of subject-oriented crawler 25
4.2 Beginning seeds selection and URL queue maintaince 26
Beginning seeds selection 26
queue maintaince 27
4.3 Web page extraction 27
HTMLsyntax analyze 28
Information resources extraction of the web page 29
4.4 Implementation of Relevance algorithm 30
Segmentation algorithm 31
Weight caculate: TF-IDF algorithm 31
Improve:IG algorithm 34
algorithm 38
4.5 Create index 38
4.6 Implementation of this system 39
4.6 Summary of this chapter 41
Chapter 5 Summary and Outlook 42
5.1 Summary of this paper 42
5.2 Prospect resarch 42
References 43
Thanks 44
第一章 绪论
1.1 选题背景和研究意义
随着Internet的快速发展,网络正在深刻地影响着我们的生活。而在网上发展最为迅速的WWW(World Wide Web)技术,以其直观、简单、高效的使用方式和丰富的表达能力,已逐步成为Internet上最为重要的信息发布和交互方式,据美国因特网监制公司Netcraft 28日宣布,截止2021年2月底,全球互联网网站数量超过1.6亿,达162662053,较一个月前增加了450万。网页数量也达到百亿级别。
随着网络信息资源的急剧增长,越来越多的信息涌到人们的面前,然后Web信心在人们提供丰富信息的同时,却在Web信息的高效便捷使用方面给人民带来巨大的挑战:一方面Web上的信息种类繁多、丰富多彩,而另一方面却很难找到真正有用的信息,搜索引擎就是在这样的背景下出现的,并且已经发挥出不可替代的作用,成为帮助人们从浩瀚的信息海洋中获取自己想要的信息的有效工具和一种举足轻重的网络应用手段。
1.2 搜索引擎的发展
伴随互联网爆炸式的发展,普通网络用户想找到所需的资料简直如同大海捞针,这时为满足大众信息检索需求的专业搜索网站便应运而生了。自上世纪就是年代诞生以来,搜索引擎经历了四个发展阶段[1]:
所有搜索引擎的祖先,是1990年由Montreal的McGill大学的Emtage等发明的Archie。该软件可以根据用户的文件名查找分布在各个ftp主机上的文件。受Archie的启发,Nevada大学于1993年开发了一个Gopher搜索工具Veronica。
(1) 第一代搜索引擎出现于1994年。这类搜索引擎一般数据量少,而且无法及时更新网页,检索速度比较慢。在实现上基本沿用较为成熟的IR、数据库、网络等技术。早期,一些编程者设想既然所有网页都可能有连向其他网站的链接,那么从一个网站开始,跟踪所有网页上的所有链接,就有可能检索整个互联网。到1993年底,一些基于此原理的搜索引擎开始纷纷涌现,比如:Scotland的JumpStation大学McBryan的The World Wide Web Worm。
1994年4月,Stanford University 的两名博士生,美籍华人杨致远和David Filo共同创办了“Yahoo!”。在早期,“Yahoo!”的数据是手工输入的,是一个可搜索的目录,也可称作目录型搜索引擎。
1994年7月20日,Lycos的发布是搜索引擎史上又一个重要的进步。除了相关性排序外,Lycos还提供了前缀匹配和字符相近限制,Lycos第一个在搜索结果中使用了网页自动摘要。
(2) 第二代搜索引擎大约出现于1996年。这一时期的搜索引擎大概采用分布式方案来提高数据规模、响应速度等性能,并且在检索阶段开始采用数据挖掘等技术来提高结果的相关性;1997年8月出现的Northernlight是第一个支持对检索结果进行简单聚类分类的搜索引擎。这一时期也出现一种新的搜索引擎——元搜索引擎。用户只需提交一次搜索请求,由元搜索引擎负责提交给多个预先选定的独立搜索引擎,并将各独立搜索引擎返回的所有查询结果,集中起来处理后再返回给用户。第一个元搜索引擎是Washington大学硕士生Eric Selberg 和Oren Etzioni 在1995年开发的Metacrawler。
(3) 第三代搜索引擎大约出现于1998年。此时索引数据库的规模继续增大,并结合用户反馈信息进一步提高检索结果相关性。在1998年10月之前,Google只是Stanford大学的一个小项目BackRub。1999年2月,Google完成了从Alpha版到Beta版的蜕变。现在Google的数据库已经超过四十亿网页。除了数据规模的剧增,功能也变得多样,比如开始出现主题搜索和地域搜索。Google就包括PageRank、动态摘要、网页快照、多语言支持、用户界面等功能。
值得一提的是,2000年1月,两位北大校友,超链分析专利发明人、前Infoseek资深工程师李彦宏在背景中关村创立百度公司,并于同年10月正式发布Baidu搜索引擎,专注于中文搜索。Baidu搜索引擎的特色包括:百度快照、网页预览、相关搜索词、错别字纠正等特色搜索。凭借其多样的服务、简洁的界面和高效的性能,百度以纪念馆占领国内大部分市场份额。
(4) 为满足搜索需求的多样化和进一步提高相关性的要求,以主题搜索引擎为代表的第四代搜索引擎开始成为人们研究的热点。现在人们将更多的新技术融入到搜索引擎中,比如将人工智能技术融入爬虫的搜索策略,并结合自然语言处理技术来理解用户搜索行为,学习新词和提高搜索结果的相关性。网络上开始出现各种专业领域的搜索万站。
随着互联网规模的急剧膨胀,一家搜索引擎光靠自己单打独斗已无法适应目前的市场情况,因此现在搜索引擎之间开始出现了分工协作,并有了专业的搜索引擎技术和搜索数据库服务提供商。像国外的Inktomi,它本身并不是直接面向用户的搜索引擎,但像包括Overture、LookSmart等在内的其他搜索引擎提供全文网页搜索服务。
1.3 国内外研究现状
人们于20世纪80年代开始对Web信息抽取技术进行研究,研究的方向主要集中在两个领域。一方面研究的主要目的是把网页中的无结构化数据或半结构化数据变成结构化数据,在这方面已有大量的研究工作,包括HTML结构分析方法(如XWRAP[2]和Lixo[3])、基于自然语言处理的方法(如SRV)、机器学习学习方法和基于Ontology方法等,这些方法通常是面向特定领域、特定网站或者目前针对特定格式。信息抽取另一方面的研究主要目的不是提取细粒度的数据而是提取标题、正文等主题内容或兴趣区域,本章将介绍这一领域的研究现状[4]。
在国外方面,Finn等人将HTML文档看作字符和标签组成的序列,在字符集中的区域提取文字。这种方法仅适合主题文字集中的网页,如果段落间有表格或链接标签丰富的结构,就不能有效处理。Kaasinen等人提出Desk-Card模型,将网页(Desk)分为若干Card,每次显示一个Card,减少了页面大小,但是没有提取出信息,用户需要阅读多个Card才能确定主题。Buyukkokten等人提出了STU模型,STU对应网页中的快(block),将网页分割为平行的STU,Desk-Card模型和STU模型都采用了分块思想,后者减少了定位时间,但是它们都改变了源网页的结构和内容,而且没有提取出主题信息,保留了无关的文字和链接。Gupta等人的方法是从网页中删除无关部分,维持了网页的结构和内容,但在删除链接较少考虑上下文的语义,极易删除正文中的链接列表,使提取结果不完整。
在国内方面,对网页中主题内容的抽取近年来也被广泛的研究。王琦等基于DOM规范,针对HTML的半结构化特征和缺乏语义描述的不足,提出含有语义信息的STU-DOM模型,它以STU节点内的链接数和非链接文字数为节点的语义信息,将HTML文档转换为STU-DOM树,并对其进行基于结构的过滤和基于语义的剪枝。胡国平等人针对新闻网页,提出了基于统计的正文抽取的方法,它只适合于一个网页中所有正文信息都放在一个TABLE中的情况。孙承杰等将节点内非链接文字、链接文字占本节点文字以及整棵HTML树的比例,以及节点是否出现TABLE、DIV、TR、TD标签等方面的信息作为节点的特征向量,提出了基于双层决策的正文抽取策略,并利用特征向量提取和决策树算法对上述决策进行建模。
主题爬虫就是根据一定的网页分析算法过滤与主题无关的链接,保留主题相关的链接并将其放入待抓取的URL队列中;然后根据一定的搜索策略从队列中选择下一个要抓取的网页URL,并重复上述过程,直到到达系统的某一条件时停止。所有被爬虫程序抓取的网页将会被系统存储,进行一定的分析,对于主题爬虫来说,这一过程所得到的分析结果还可能对后续的抓取过程进行反馈和指导。为了高效地抓取与主题相关的信息资源,研究者提出了许多主题定制策略和相关算法,使得主题爬虫尽可能多地爬行主题相关的网页,尽可能少的爬行无关网页,并且确保网页的质量。通过分析比较,本文将它们分为如下四类。
(1) 基于文字内容的启发式方法
基于文字内容的启发策略主要是利用了Web网页文本内容、URL字符串、锚文本等文字内容信息。不同的分析方法构成了不同的启发策略和相应的算法。主要包括:
① Best first search方法:基本思想是给定一个待爬行URL队列,从中挑选最好的URL优先爬行。爬行主题采用关键词集合来描述,待爬行URL的优先级是根据主题词和已爬行网页p的文字内容来计算,用它们的相关度来估计p所指向网页的相关度。相关度大的网页,它所指向的网页优先级就高,从而决定了待爬行队列中URL的优先级顺序。在主题爬虫研究领域,该算法具有一定的竞争力,所以很多研究者将其作为算法性能的比较基准。
② Fish search方法。 1994年由学者De Bra等人[5]提出。它将在网络上遍历的爬虫比喻成海里的一群鱼,当它们发现食物(相关信息)时,这些鱼就继续繁殖,寻找新的食物;当没有食物时(没有相关信息)或水被污染(带宽不够)时,它们就死掉。该算法的关键是根据代表用户感兴趣主题的种子站点和主题关键词,动态地维护待爬行的URL优先级队列。
③ Shark search方法[6]。它在 Fish seareh算法的基础上进行了改进。此算法综合考虑网页以及链接文本的相关性,对网页中的U甩按照优先权值进行排序,通过乘上一个衰减因子来继承父页面的相关性。与fish算法相比,Shark算法精确度高,能更好地保证爬行器正确的搜索方向,提高相关信息的发现率。
(2) 基于Web超链接结构图评价的方法
基于Web图的启发策略的基本思想来自于文献计量学的引用分析理论。尽管引用分析理论的应用环境与Web并不相同,但到目前为止,网页之间的超链接还是比较有价值的一种信息。基于Web超链接结构图评价的爬行算法有以下几种:
① BackLink:一个网页被其他网页所引用的次数越多,就说明越重要。待爬行URL队列按照BackLink的数量来排序,数量大的优先爬行。
② PageRank:基于Web图,首先计算每个网页的PageRank值,然后对待爬行URL队列按照PageRank的值进行排序。
PageRank算法是由Google的创始人S.Brin和LPage提出的,它是一种与查询无关的算法[7]。在BackLink算法中,一个网页的链入网页数量越大,它的重要性就越大,而没有考虑入链的质量问题。实际上,不同质量的网页对网页重要性的贡献是不同的。简单地
(3) 基于分类器预测的方法
为了克服基于文字内容难以精确描述用户感兴趣的主题,研究者提出了基于分类器导引的主题爬虫[8],从而可以基于分类模型来描述用户感兴趣的主题和预测网页的主题相关度。通过文本分类模型可以从更深的层次来描述用户感兴趣的主题信息,并可以更加准确地计算网页的主题相关性,而不只停留在基于关键词的匹配上。文本分类技术应用于主题信息搜索中有利于提高主题搜索的正确率和准确率。Chakrabarti等人提出了分别基于两种不同的模型来计算网页主题相关性和URL访问次序。计算网页主题相关性的模型可以是任何二值分类器,而计算机URL访问次序的模型(简称为apprentice)是通过包含父网页和子网页及其相关度的训练样本集合在线训练得到的。傅向华等人将Web爬行看作执行序列动作的过程,结合改进的快速Q学习和半监督贝叶斯分类器,提出了一种新的具有在线增量学习能力的聚焦爬行方法。李盛稻等人在分析主题web信息采集基本问题的基础上,提出了主题爬虫的难点以及相关的解决方案。
(4) 其他主题爬行方法
J.Cho等人[9]提出通过先爬行更重要的网页使得爬行更有效,而提出了各种计算网页重要性的方法,如网页与查询项的相关性、指向该网页的网页个数(BackLinks)、该网页的PageRank值和该网页所出的位置。M.Diligenti等人提出了使用上下文图表来引导主题爬虫,作者认为该领域主要的问题是在爬行中把任务分配给网页。C.Aggarwal等人提出了Web主题管理系统(WTMS),他们使用主题爬行技术,只下载相关网页附近的网页(如双亲、孩子和兄弟)。
1.4 本文的主要工作和论文结构
本文在通用爬虫的基础之上,通过引入网页预处理,对网页的内容和链接结构做深入细致的分析,改进传统的权值计算方法,利用空间向量模型,从而实现主题爬虫的搜索策略,本文的研究内容体现在以下四个方面:
(1) 爬虫部分,根据主题和种子网站,在信息网上尽可能地下载与主题相关的网页到mirror中。
(2) HTML解析策略,通过对HTML语法的分析,对网页进行解析,分析得到网页的URL地址、标题title、内容context等内容。
(3) 主题相关度算法,本论文对传统的TF-IDF算法进行了改进,并结合VSM算法,对各个网页的title进行相关度排序,使相关度比较高的网页排在呈献给用户的前面,提高爬虫的搜索准确度和效率。
(4) 在实现简易爬虫基础上,结合实际数据分析了爬虫的搜集效率。
本文共分五章,篇节安排如下:
第一章,绪论:介绍了Internet和搜索引擎的发展历史,网络爬虫的国内外研究现状,以及本文研究内容和篇章结构。
第二章,主题爬虫简介:阐述了网络爬虫在搜索引擎中的重要地位,分析介绍了网络爬虫的结构及基本原理,然后分析了网络爬虫的分类以及这几种分类的比较,结合主题页面的分布特性、网页内容以及链接结构,提出了主题爬虫的设计目标。
第三章,介绍了网络爬虫设计到的关键算法:首先讲述了主题爬虫的搜索策略,分别说明基于内容和基于链接结构评价的搜索策略的原理。然后介绍了Web结构链接挖掘算法,PageRank和HITS算法,分析了它们的工作原理和比较。最后介绍了主题相关性算法。
第四章,主题爬虫的分析与设计:该章介绍具体的爬虫设计过程。先讲述网络爬虫的爬虫工作过程,然后讲述了HTML解析方法和策略,接着重点分析主题相关性判断算法——TF-IDF算法以及改进和VSM算法,最后介绍了如何建立索引。
第五章,总结与实现。
第二章 网络爬虫工作原理
本章主要介绍构建一个网络爬虫系统所需的基础知识和框架,为实现网络爬虫程序打下基础。
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干个初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。主题爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于主题爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
2.1 网络爬虫在搜索引攀中的地位
搜索引擎的工作原理基本都是一样的,利用一个称为网络爬虫Cwarler(也叫做网络蜘蛛Spider或网络机器人Robot)的程序,本论文统一称为网络爬虫,采用多线程并发搜索技术,在互联网中访问各节点,定期搜索信息,抓取网页,并根据网络链接提取其他网页,对网页进行分析,提取关键词、URL等信息,然后索引器对爬虫所提取的信息进行排序并存入索引数据库,用户可以通过用户接口输入所需信息的关键词进行查询,检索器则根据用户提交的关键词在索引数据库中查找相关信息,并按照相关度进行排序输出。
因为搜索引擎与网络用户的关系非常密切,因此它一直专注于在三个方面提升用户的体验度,即为准、全、快。用专业术语讲就是:查准率、查全率和搜索速度(即搜索耗时)。其中比较容易提高的是搜索速度,因为对于搜索耗时在1秒以下的系统来说,用户已经很难辨别其快慢了,再加上网络速度的影响,就更难分辨搜索引擎本身的搜索速度。因此,对搜索引擎的评价就集中在了另外两方面:准和全。搜索引擎的查全需要保证一些比较重要的结果不被遗漏,而且能够找到最新的网页,这需要搜索引擎有一个强大的网页收集器,即网络爬虫;搜索引擎的查准,则需要保证搜索的前几十条结果都和搜索的关键词的相关度很高,即使用户很满意,这是由排序技术来决定的。
搜索引擎是一个技术含量很高的网络应用系统。它包括网络技术、数据库技术、检索技术、语言处理技术及智能技术等等。
各种搜索引擎虽然在设计细节上有所不同,但是基本构造通常都可分为四部分:网络爬虫、索引模块、信息检索和用户接口,功能如下所述[10]:
(1) 网络爬虫:网络爬虫Crwaler日夜不停地在互联网的各节点中自动爬行,从一个或一组URL开始访问,并尽可能多、尽可能快地从中发现和抓取信息。因为互联网上的信息更新很快,所以还要定期更新己经搜集过的旧信息,以避免死链接和无效链接。
(2) 索引模块:索引分析器Indexer对网络爬虫所下载的页面进行分析,过滤掉无用的信息,把文件表示成一种便于建立索引的方式,抽取最优索引信息以表示文档,并利用所抽取信息建立索引数据库,从而使用户能够很容易的查找到所需要的信息。硕生:论文搜索引擎中主题爬虫的研究与实现
(3) 信息检索:检索器Searcher根据用户查询的关键词从索引数据库中快速查找相应的文档,并进行相关度的计算,然后将输出结果按照相关度排序回馈给用户,其中检索算法、信息查询和组织的方式都会在很大程度上影响检索模块的系统性能。
(4) 用户接口:提供用户与搜索引擎的交互窗口,用于关键字的输入,查询结果的输出,用户接口应尽量设计的人性化。
搜索引擎虽然外在表现呈现出多样化,所提供的功能也有所不同,但是就其实现来说,构造基本都是一样的。本论文所讨论的搜索引擎其结构分为四部分,即上文所提到的网络爬虫、索引模块、信息检索以及用户接口。网络爬虫在搜索引擎中占有重要地位,对搜索引擎的查全、查准都有一定程度的影响,它决定了搜索引擎数据容量的大小,而且网络爬虫设计得好与坏直接影响搜索结果页面中的优等页面和死链接(即链接所指向的网页已经不存在)的个数。目前如何发现更多的网页、如何正确提取网页内容、如何提高信息抓取的速度以及如何识别网站中内容相同的网页等都是网络爬虫需要进一步改进的问题。
根据上文的讨论,可以得到搜索引擎的基本框架结构以及网络爬虫在搜索引擎中的位置如图2-1所示。
本论文的主要研究工作就是针对图中网络爬虫部分的分析,在文章的接下来部分将对其进行讨论,详细介绍网络爬虫的工作原理以及功能等。
图2-1 搜索引擎体系结构
2.2 网络爬虫的基本原理
主题爬虫又称网络蜘蛛,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络爬虫就可以用这个原理把互联网上所有的网页都抓取下来。下面大体介绍主题爬虫的工作原理。
主题网络爬虫的体系结构
主题网络爬虫系统选择种子网页,解析出其中的链接并保存到URL队列,Crawler管理器负责分配爬虫程序下载目标网页,其URL 及经过Web分析器分析后得到的其它相关信息将被存放到候选网页队列,相关信息包括网页内容主题相似度,种子页面到该网页的链接数目,及网页到种子网页集的链接数目。每个阶段开始,系统将在己经抓取并被保存在候选网页队列中的网页中选择相关度权值最高的网页作为种子网页。主题爬虫系统的系统结构如图2-2所示[11]。
图2-2 主题爬虫的系统结构
系统模块功能说明
这一节我们将详细说明各个模块的主要功能。
(1) 种子网页集:在系统初始阶段,我们将指定一个网页作为系统的种子网页(Yahoo首页,hub网页)。在每个子阶段开始,系统将会从候选网页队列中选择相关度权值最高的网页作为种子网页。
(2) URL 队列:种子网页中会存在大量指向其它网页的链接。这些URL将被提取出来并存放到URL 队列中,等待爬虫管理器分配给爬虫程序。
(3) Crawler管理器:Crawler管理器组件主要功能是管理爬虫程序从网络中下载相关Web页面。它首先从URL队列中取得URL,并将它存放到一个URL缓冲区中(该缓冲区是一个FIFO队列)。动态创建爬虫程序下载目标URL文件。同时爬虫管理模块还监视爬虫工作状态,来控制爬虫的爬行速度,以及控制爬虫程序间的负载平衡。
(4) Crawler:爬虫是主要负责下载爬虫管理器提供的URL地址目标文件。每个爬虫程序都拥有一个自己的URL 队列用来保存需要下载的Web的URL。爬虫从队列中取得URL,访问并下载相关Web文件。同时,其它爬虫可能访问同一Web服务器,从而导致服务器的过载。因此我们引入一个防止服务器过载模块,该模块存放爬虫己经发出访问请求并等待服务器响应的URL。如果之前没有对该URL的Web服务器的访问请求,针对该URL的访问请求将立即发送到 模块,否则进入等待访问URL队列。
(5) 防止服务器过载模块:Crawler程序非常消耗服务器资源,同时占用大量带宽,如果不对Crawler的抓取目标进行控制,很可能导致众多Crawler同时访问同一Web服务器,造成服务器过载,爬虫程序的性能急剧下降,网络阻塞。所以该模块将限制Crawler对服务器的同时访问。
(6) URL解析器:URL解析器模块从Web数据库中提取得Web文件,并解析出其中的URL地址和网贞内容,删除重复的URL地址。然后该模块将相关信息(URL地址,内容)传送给Web分析器。
(7) Web分析器:Web分析器组件接受URL解析器模块传送过来的网页相关信息计算网页的相关度权值。然后将网页URL,相关度权值,网页到种子页面集的链接数目,种子页面集到该网页的链接数目,网页内容的主题相似度等信息存放到候选网页队列中。
(8) 种子网页选择器:种子网页选择器负责从候选网页队列中选择相关度最高的网页作为系统的种子网页。并修改候选网页队列中的存储的网页的相关链接数目信息,并重新计算相关网页的相关度权值。
2.3 内容提取
搜索引擎建立网页索引,处理的对象是文本文件。对于网络爬虫来说,抓取下来网页包括各种格式,包括html、图片、doc、pdf、多媒体、动态网页及其它格式等。这些文件抓取下来后,需要把这些文件中的文本信息提取出来。准确提取这些文档的信息,一方面对搜索引擎的搜索准确性
展开阅读全文