主题网络爬虫的研究与实现.docx
《主题网络爬虫的研究与实现.docx》由会员分享,可在线阅读,更多相关《主题网络爬虫的研究与实现.docx(53页珍藏版)》请在冰豆网上搜索。
主题网络爬虫的研究与实现
本科毕业论文
主题网络爬虫的设计与实现
Designandimplementationofsubject-orientedcrawler
姓名:
路刚
学号:
23020051204554
学 院:
软件学院
系:
软件工程
专业:
软件工程
年级:
2005级
指导教师:
史亮 副教授
二〇〇九年六月
摘 要
目前信息网上蕴含了大量的信息,但通过人工浏览的方法很难做到对信息的安全浏览、整理,很多有用的信息也就白白流失,产生了大量信息不能及时应用的矛盾,给用户造成了很大的不便,为了解决这一问题,搜索引擎这一新热点技术应运而生,本文结合信息网的特征,运用信息抽取和网页解析技术,设计和实现了搜索引擎中最重要的部分——网络爬虫,以提供分类更细致精确、数据更全面深入、更新更及时的因特网搜索服务。
本文首先对概述了网络爬虫的发展概况,然后分析了网络爬虫的体系结构以及实现原理,并深入分析了主题页面在Web上的分布特征与主题相关性的判别算法,具体工作如下:
(1)爬虫部分,通过设计种子网站进行爬虫,下载尽可能全且与用户要求相符合的网站。
(2)网页预处理过程,包括分词、HTML解析和网页消噪。
在对树节点进行裁剪的基础上,设计了基于样式的网页消噪方法,进一步提高网页消噪过程。
(3)主题相关性判断,包括特征提取和权值计算阶段。
在特征提取阶段,通过组合文档频率,得到新的特征,达到降维和提高分类精度的效果。
在权值计算阶段,结合信息增益、传统TFIDF算法和空间向量模型VSM算法,得到了更适合主题相关性判断的权值计算方法。
(4)最后,在MYECLIPSE平台上,实现了一个简易的网络爬虫系统,并简要分析了爬虫的运行效果,达到了令人满意的效果。
关键词:
网页解析;TFIDF算法;VSM算法
Abstract
Currentlythereislotofinformationinthepublicsecurityinformationwebsite,butitisnotpossibletovisitandcleanupallinformationonlythroughartificalmanner,somuchimportinformationwouldbelost,alsowouldgoaginstcrackingacriminalcase,whichcausesagreatdealofinconveniencetousers.Todealwiththisproblem,searchenginetechnologycameintobeingthenewhotspot.Basedonthecharacteristicsofinformationnetworks,thepaperdesignedandimplementedthemostimportantpartofsearchengine—WebSpider,usinginformationextractionandwebanalytictechnologytoprovidemoredetailedclassificationaccuracy,dataismorecomprehensiveandin-depth,moretimelyupdatesofInternetsearchservices.
ThispaperfirstoutlinedthedevelopmentofsearchenginesandreptileresearchnetworkstatusandthenanalyzedthearchitectureoftopicsearchengineanddepthlyanalysdthethemeofthepageintheWebonthedistributionofsubjectcharacteristicsandtheidentificationalgorithm.Inthispaper,theconcreteworkasfollows:
(1)Spiderpart.Bysetseedsthroughthedesignofwebsite,downloadasmuchaspossibleandwiththewholesiteinlinewithuserrequirements.
(2)Pagepre-processingprocess,includingWordparticiling,HTMLparsingandpagede-noising.
(3)Todeterminetherelevanceofthetheme,includingthefeatureextractionstageandtherightvalue.Inthefeatureextractionstage,throughthecombinationofdocumentfrequency,newfeatures,toachievedimensionalityreductionandimprovingtheclassificationaccuracyresults.Valueintherightphase,combinedwithinformationgain,TFIDFalgorithmandthetraditionalvectorspacemodelalgorithm,havebeenmoresuitableforthethemeoftherelevanceoftherighttodeterminethevalueofthecalculation.
(4)Finally,inMYECLIPSEplatformtorealizeasimplenetworksystemreptiles,andreptilesabriefanalysisoftheeffectoftheoperation,reachedasatisfactoryresult.
Keywords:
pageanalysis;TFIDFalgorithm;spacevectoralgorithm.
目录
第一章绪论1
1.1选题背景和研究意义1
1.2搜索引擎的发展1
1.3国内外研究现状3
1.4本文的主要工作和论文结构5
第二章网络爬虫工作原理7
2.1网络爬虫在搜索引攀中的地位7
2.2网络爬虫的基本原理9
2.2.1主题网络爬虫的体系结构9
2.2.2系统模块功能说明10
2.3内容提取11
2.4主题页面在web上的分布特征12
2.5本章小结14
第三章网络爬虫的关键算法15
3.1网页搜索策略15
3.2主题爬虫的搜索策略16
3.2.1基于内容评价的搜索策略16
3.2.2基于链接结构评价的搜索策略19
3.3主题相关性算法21
3.3.1向量空间模型(VSM)21
3.3.2页面主题相关性算法23
3.4本章小结24
第四章主题爬虫的分析与设计25
4.1主题爬虫的体系结构25
4.2初始种子选取和URL队列维护26
4.2.1初始种子选取26
4.2.2URL队列维护27
4.3网页解析27
4.3.1HTML语法的分析28
4.3.2网页中信息资源的提取29
4.4主题相关性算法实现30
4.4.1分词算法31
4.4.2权值计算:
TF-IDF算法31
4.4.3权值算法的改进:
IG算法34
4.4.4VSM算法38
4.5建立索引38
4.6系统实现39
4.6总结41
第五章总结与展望42
5.1本文总结42
5.2研究展望42
参考文献43
致谢44
Contents
Chapter1Introduction1
1.1Backgroundofthetopicsandresearchsignificance1
1.2Historyofthedevelopmentofsearchengines1
1.3Researchstatusathomeandabroad3
1.4Mainworkandstructureofthispaper5
Chapter2Workingprincipleofcrawler7
2.1Statusofcrawlerinsearchenginedomain7
2.2Thebasicprinciplesofcrawler9
2.2.1Architectureofsubject-orientedcrawler9
2.2.2Introductionofmodulefunction10
2.3Informationextraction11
2.4Distributionfeaturesofsubject-orientedpageonweb12
2.5Summaryofthischapter14
Chapter3Keyalgorithmofcrawler15
3.1Websearchingstrategy15
3.2Searchingstrategyofsubject-orientedcrawler16
3.2.1Link-basedrelevancealgorithm16
3.2.2Content-basedrelevancealgorithm19
3.3Subjectrelevancealgorithm21
3.3.1VSM(VectorSpaceModel)21
3.3.2Relevancealgorithmaboutwebpagesubject23
3.4Summaryofthischapter24
Chapter4Analysisanddesignaboutsubject-orientedcrawler25
4.1Architectureofsubject-orientedcrawler25
4.2BeginningseedsselectionandURLqueuemaintaince26
4.2.1Beginningseedsselection26
4.2.2URLqueuemaintaince27
4.3Webpageextraction27
4.3.1HTMLsyntaxanalyze28
4.3.2Informationresourcesextractionofthewebpage29
4.4ImplementationofRelevancealgorithm30
4.4.1Segmentationalgorithm31
4.4.2Weightcaculate:
TF-IDFalgorithm31
4.4.3Improve:
IGalgorithm34
4.4.4VSMalgorithm38
4.5Createindex38
4.6Implementationofthissystem39
4.6Summaryofthischapter41
Chapter5SummaryandOutlook42
5.1Summaryofthispaper42
5.2Prospectresarch42
References43
Thanks44
第一章绪论
1.1选题背景和研究意义
随着Internet的快速发展,网络正在深刻地影响着我们的生活。
而在网上发展最为迅速的WWW(WorldWideWeb)技术,以其直观、简单、高效的使用方式和丰富的表达能力,已逐步成为Internet上最为重要的信息发布和交互方式,据美国因特网监制公司Netcraft28日宣布,截止2008年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的TheWorldWideWebWorm。
1994年4月,StanfordUniversity的两名博士生,美籍华人杨致远和DavidFilo共同创办了“Yahoo!
”。
在早期,“Yahoo!
”的数据是手工输入的,是一个可搜索的目录,也可称作目录型搜索引擎。
1994年7月20日,Lycos的发布是搜索引擎史上又一个重要的进步。
除了相关性排序外,Lycos还提供了前缀匹配和字符相近限制,Lycos第一个在搜索结果中使用了网页自动摘要。
(2)第二代搜索引擎大约出现于1996年。
这一时期的搜索引擎大概采用分布式方案来提高数据规模、响应速度等性能,并且在检索阶段开始采用数据挖掘等技术来提高结果的相关性;1997年8月出现的Northernlight是第一个支持对检索结果进行简单聚类分类的搜索引擎。
这一时期也出现一种新的搜索引擎——元搜索引擎。
用户只需提交一次搜索请求,由元搜索引擎负责提交给多个预先选定的独立搜索引擎,并将各独立搜索引擎返回的所有查询结果,集中起来处理后再返回给用户。
第一个元搜索引擎是Washington大学硕士生EricSelberg和OrenEtzioni在1995年开发的Metacrawler。
(3)第三代搜索引擎大约出现于1998年。
此时索引数据库的规模继续增大,并结合用户反馈信息进一步提高检索结果相关性。
在1998年10月之前,Google只是Stanford大学的一个小项目BackRub。
1999年2月,Google完成了从Alpha版到Beta版的蜕变。
现在Google的数据库已经超过四十亿网页。
除了数据规模的剧增,功能也变得多样,比如开始出现主题搜索和地域搜索。
Google就包括PageRank、动态摘要、网页快照、多语言支持、用户界面等功能。
值得一提的是,2000年1月,两位北大校友,超链分析专利发明人、前Infoseek资深工程师李彦宏在背景中关村创立XX公司,并于同年10月正式发布Baidu搜索引擎,专注于中文搜索。
Baidu搜索引擎的特色包括:
XX快照、网页预览、相关搜索词、错别字纠正等特色搜索。
凭借其多样的服务、简洁的界面和高效的性能,XX以纪念馆占领国内大部分市场份额。
(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字符串、锚文本等文字内容信息。
不同的分析方法构成了不同的启发策略和相应的算法。
主要包括:
①Bestfirstsearch方法:
基本思想是给定一个待爬行URL队列,从中挑选最好的URL优先爬行。
爬行主题采用关键词集合来描述,待爬行URL的优先级是根据主题词和已爬行网页p的文字内容来计算,用它们的相关度来估计p所指向网页的相关度。
相关度大的网页,它所指向的网页优先级就高,从而决定了待爬行队列中URL的优先级顺序。
在主题爬虫研究领域,该算法具有一定的竞争力,所以很多研究者将其作为算法性能的比较基准。
②Fishsearch方法。
1994年由学者DeBra等人[5]提出。
它将在网络上遍历的爬虫比喻成海里的一群鱼,当它们发现食物(相关信息)时,这些鱼就继续繁殖,寻找新的食物;当没有食物时(没有相关信息)或水被污染(带宽不够)时,它们就死掉。
该算法的关键是根据代表用户感兴趣主题的种子站点和主题关键词,动态地维护待爬行的URL优先级队列。
③Sharksearch方法[6]。
它在Fishseareh算法的基础上进行了改进。
此算法综合考虑网页以及链接文本的相关性,对网页中的U甩按照优先权值进行排序,通过乘上一个衰减因子来继承父页面的相关性。
与fish算法相比,Shark算法精确度高,能更好地保证爬行器正确的搜索方向,提高相关信息的发现率。
(2)基于Web超链接结构图评价的方法
基于Web图的启发策略的基本思想来自于文献计量学的引用分析理论。
尽管引用分析理论的应用环境与Web并不相同,但到目前为止,网页之间的超链接还是比较有价值的一种信息。
基于Web超链接结构图评价的爬行算法有以下几种:
①BackLink:
一个网页被其他网页所引用的次数越多,就说明越重要。
待爬行URL队列按照BackLink的数量来排序,数量大的优先爬行。
②PageRank:
基于Web图,首先计算每个网页的PageRank值,然后对待爬行URL队列按照PageRank的值进行排序。
PageRank算法是由Google的创始人S.Brin和LPage提出的,它是一种与查询无关的算法[7]。
在BackLink算法中,一个网页的链入网页数量越大,它的重要性就越大,而没有考虑入链的质量问题。
实际上,不同质量的网页对网页重要性的贡献是不同的。
简单地说,按照BackLink算法,要想提高某网页的重要性,只要建立许多网页指向它就可以了。
S.Brin和L.Page提出的PageRank算法就是为了克服BackLink的这种不足而设计的。
(3)基于分类器预测的方法
为了克服基于文字内容难以精确描述用户感兴趣的主题,研究者提出了基于分类器导引的主题爬虫[8],从而可以基于分类模型来描述用户感兴趣的主题和预测网页的主题相关度。
通过文本分类模型可以从更深的层次来描述用户感兴趣的主题信息,并可以更加准确地计算网页的主题相关性,而不只停留在基于关键词的匹配上