heritrix框架下网络爬虫应用毕业设计_第1页
heritrix框架下网络爬虫应用毕业设计_第2页
heritrix框架下网络爬虫应用毕业设计_第3页
heritrix框架下网络爬虫应用毕业设计_第4页
heritrix框架下网络爬虫应用毕业设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、天津科技大学2013届本科生毕业设计Heritrix框架下网络爬虫应用THE WEB CRAWLER APPLICATION BASE ON HERITRIX FRAMEWORK 专 业:软件工程 姓 名: 指导教师姓名: 申请学位级别:学 士 论文提交日期:2013年06月20日 学位授予单位:天津科技大学摘 要互联网是一个庞大的非结构化的数据库,目前网络中的资源非常丰富,但通过人工浏览的方法很难做到对信息的安全浏览和整理,很多有用的信息也就白白流失,将数据有效地检索并组织呈现出来有着巨大的应用前景。为满足搜索需求的多样化和进一步提高相关性的要求,以主题搜索为代表的搜索引擎开始成为人们研究的

2、热点。本论文首先介绍了网络爬虫的发展状况,分析了基于递归和归档机制的Heritrix网络爬虫的系统架构和实现技术;本文结合信息网的特征,在对网络爬虫系统结构和工作原理分析的基础上,分析了Heritrix爬虫的抓取搜索策略;同时针对现阶段Web信息抽取技术,通过分析主题搜索页面在Web上的分布特征,研究了Web页面信息抽取和网页解析技术,使网络爬虫能够灵活高效的搜索相关主题信息。其中,本文中网络爬虫部分采用了当前开源的,JAVA编写的Heritrix网络爬虫;网页内容提取采用遍历Html文档树获取相应网页内容;征对主题搜索的网页和Url主题相关性判定,应用了新的Web文档聚类算法以便对Web文档

3、进行挖掘分析,并使用Java实现了一个网络爬虫的程序,对其运行结果做了分析和归纳,实现了网络爬虫灵活高效的搜索相关主题信息的目的。关键词: Heritrix;网络爬虫;主题搜索;Web信息抽取 ABSTRACTThe Internet is a vast unstructured database, the network is very rich in resources, but through the method of artificial browsing is very difficult to achieve the security of information browsin

4、g and consolidation, a lot of useful information is lost, the data effectively retrieval and organization has shown great application prospects.To meet the diverse needs and to further improve the relevance of search request, the theme of search engine starts to become the hot spot of research5.This

5、 paper firstly introduces the development status of web crawler, based on the analysis of the system architecture of Heritrixweb crawler recursive and Archiving Mechanism and the realization technology3; Combined with the characteristics of information network, based on analysis of the crawler syste

6、m structure and working principle of the network, analyzes the Heritrix crawler to grab search strategy; At the same time, in view of the present stage Web information extraction technology, through the distribution characteristics of topic search page analysis , on the web page information extracti

7、on and webpage analysis technology,it can make web crawler flexible and efficient search related theme information1.Among them, the web crawler part adopts the open source, Heritrix web crawler written in JAVA; Webpage content extraction by traversing the Htmldocument tree and obtain the correspondi

8、ng webpage content4.Sign webpage and Url theme correlation on the topic search criterion, the application of the Web document clustering algorithm to analysis of Web document, and through Java implementation a network Reptile procedures, analyzes and summarizes the operating results, the topic web c

9、rawler search information in a flexible and efficient purpose.Key words:Heritrix;Web crawler;Topic search;Web information extractionII目 录第一章 绪 论1第一节 课题研究的背景1第二节 课题研究的意义.2第三节 课题研究的主要内容.3第二章 网络爬虫相关介绍4第一节 网络爬虫的工作原理.4第二节 网络爬虫的构成和分类.5第三节 网络爬虫的搜索策略析.10第三章Heritrix网络爬虫简介.12第一节 Heritrix系统构.12第二节 Heritrix的源码分

10、析.17第三节 Heritrix包介绍.20第四节 Heritrix的扩展.20第四章 网络爬虫应用系统分析23第一节 系统的需求分析.23第二节 可行性分析.26第三节 结 论.27第五章 系统设计28第一节 系统功能设计.28第二节 系统模块设计.28第三节 Berkeley DB数据库介绍.32第六章 系统实现.33第一节 页面内容分析模块.33第二节 页面信息下载模块.34第三节 爬取内容分析整理模块.39第四节 内容输出模块.41第七章 总结与展望44参考文献致谢第一章 绪 论第1节 课题研究的背景目前,互联网技术的发展,使得网络上的资源变得越来越丰富,可以说日新月异的Web资源已经

11、覆盖了人们生活的方方面面。正是因为有了互联网,使得在这个信息膨胀的今天,人们可以便捷而轻松的浏览网页上的资源。随着网络技术的发展,现在每天的Web网页信息内容更新速度越来越快,网页数量也在几何级增长,这就使得人们通过简单的浏览网页,点击链接已然不能满足人们搜索特定主题的相关内容要求。如何从浩瀚的网络资源中挖掘出自己感兴趣的资源,并且加以利用,已经成为许多人越来越感兴趣的问题。不得不说,现在的Web网页信息种类繁多,内容各异,数量也是大的惊人,单凭简单的从网页上点击链接去寻找感兴趣的网页已经是很困难的事情。然而,网络资源的丰富多彩,不乏隐藏着大量有用的信息,那么通过什么样的方式,如何从鱼龙混杂的

12、网络海洋中挖掘出有用的,有价值的文本,图片,或者音视频等资源,一直是Web搜索引擎所研究的内容,到目前为止,互联网上出现了许多有代表性的网络搜索引擎,像百度,雅虎等这样专业的搜索引擎代表,或者如新浪,腾讯,网易,搜狗等这样的门户网站类的搜索数据服务,都给人们提供了很好的上网冲浪的窗口。然而,通过这种传统的搜索引擎信息服务,搜索的结果往往五花八门,相关程度并不是特别高,而且往往会夹杂许多无用的网站链接,更或者是一些毫无意义的垃圾广告网页。那么,以何种方式访问网络资源,如何提高搜索的质量和主题相关性,满足用户特定需求的主题搜索内容,这是最近网络爬虫一直关注和研究的话题。本课题就是在这样的需求和想法

13、下,通过查阅和阅读已有的相关文献,成果,以及学习了解搜索引擎技术,网络爬虫技术要点,Lucene全文索引架构,初步利用已有的知识和技术,对目前人们对于特定主题相关内容的信息抽取进行设计实现。所谓主题搜索是指根据用户自己定制的主题内容,比如搜索自己感兴趣的汽车,美食,服装,博客等主题内容,通过网络爬虫,对于在特定网站,页面中发现、下载与指定主题相关的信息,以满足用户深层次的、面向特定领域的信息需求,并为人们提供个性化的信息服务15。它的出现使得人们对获取Web信息资源有了很强的征对性,也变得很直接很方便。第二节 课题研究的意义互联网是一个信息传播和发布的平台,在这里人们可以获取到最新,最感兴趣的

14、网页内容,随着物联网的悄然兴起,使得互联网与人们的生活愈来愈变得不可分割,反而越觉得人们的日常生活已经和互联网产生了千丝万缕的关系。通常情况下,人们都是通过上网搜索,浏览网页的方式来进行网上冲浪,为了更加方便人们从种类繁多的网页中寻找自己感兴趣的页面信息,以主题相关的网页搜索技术发展的很快。这类搜索信息服务,不注重追求网页搜索结果的最大化,也不会尽可能多的列取和搜索内容相似的网页信息,而是以用户输入的主题搜索内容为中心,在互联网络中尽可能的抓取与主题相关程度较高的网页,将最有价值的网页内容返回给用户,这类搜索引擎有一定的征对性,搜索结果中也最大化的接近主题相关内容,所以很受用户的欢迎。一般而言

15、,像这样的网页信息检索服务,通常有负责抓取网页内容,搜索网页相关内容的网络爬虫程序完成,由网络爬虫进行自动爬取网页和解析页面内容,对页面上出现的文本信息,字符数据,多媒体信息等进行解析和索引,然后形成相应的目标文件存入数据库张,通过网络访问数据库,便可使得人们检索到网络上爬取的信息资源。虽然看着这样的网页信息搜索引擎发展的确实能够满足用户的特定需求,可是不得不承认,目前互联网日新月异的变化,网络检索工具必须做到能够对实时更新的数据有所发现和解析,只有不断的改进其搜索策略,完善检索工具的搜索字典和索引技术,才能够提高搜索服务质量,尽可能满足用户的特定需求。为了满足用户搜索需求的多样化,有征对性的

16、进行主题相关的信息搜索查询,本论文将依据现有的技术成果,通过分析和研究以主题相关的网页搜索信息技术,对博客网站内容进行分析和提取,由用户选择自己感兴趣的主题相关内容,通过网络爬虫工具等,对博客网页内容进行数据抽取,通过将分析的页面进行整理和聚类分析,可以实现对博客文章的分类处理和以文本文件形式储存至本地磁盘中16。这样的作用,一方面是可以满足用户对关注的博客文章进行抓取分析,另一方面也方便用户对感兴趣的博文内容进行查阅和分析,不仅实现了对网络上资源的获取,也满足了用户的个性需求。通过这样的信息资源获取,不仅可以加深对网络爬虫工作原理的理解,也明白了如何实现对网络上资源的抽取,利用和信息处理,对

17、日后更深入的学习网络爬虫技术,搜索引擎相关实现都有很大的帮助。第三节 课题研究的主要内容 本次论文设计首先概述了网络爬虫的工作原理,然后分析了网络爬虫的体系结构以及实现原理,并深入分析爬虫在WEB页面上的分布特征与主题相关性,并通过Heritrix框架下这一成熟平台,进行实际测试和应用,实现如何对特定主题的搜索,搜集相关质量可靠,信息准确率高,满足用户需求的数据信息,将其集中放置已规划好的数据库中,随时呈现给用户搜索操作。同时通过了解和熟悉Heritrix这一开源的爬虫框架,分析其实现原理和抓取逻辑,策略,结合信息网的特征,运用信息抽取和网页解析技术,用Java实现了一个网络爬虫的程序,对相关

18、主题信息进行搜索和抓取,实现对网页博客信息的抽取和聚类实现。其中,爬虫部分,通过设计种子网站进行爬虫,下载尽可能多得与用户要求相符合的网页内容信息。网页预处理过程,包括对中文分词处理、HTML解析和网页内容获取等进行处理。主题相关性的判别,在对相关内容提取阶段,通过对文档内容进行解析,组合文档内容出现的频率,得到新的特征,达到提高分类精度的效果。在权值计算的时候,结合传统信息的TFIDF算法,得到更适合主题内容相关性判断的权值计算方法。最后,通过扩展Heritrix相关功能和类,用JAVA实现对新浪博客网页内容进行特定信息抓取和解析聚类的一个简易的网络爬虫系统,并可对其抓取博客内容进行本地管理

19、,存储修改和阅读,达到了令人满意的效果。第2章 网络爬虫相关介绍第一节 网络爬虫的工作原理网络爬虫(Web Crawler),也就是网络上所称呼的Web Spider,更或者另一种叫法是Web Robot18。它可谓是一个功能非常强大的,目前在网络上运用广泛的信息抓取工具,也可以说是多数搜索引擎的重要的一个组成部分,之所以这么说,是因为它可以按照用户自己的设计策略,从网络上按照一定得爬取策略进行抓取网站上面的内容,包括网页的Html文件,图片文档,视频等各种种类丰富的资源,并且可以从这些网页中的URL地址中进行分析,不断进行爬取,从而能够更深入的进行资源抓取和下载,实现了对资源的挖掘和爬取。W

20、eb Crawler之所以能够爬取网页上的内容,并且可以不断地循环进行搜索,源源不断的从互联网上抓取内容,其中一个很重要的原因就是它依赖于目前网络上的Html文档结构。所谓这种结构,其实就是目前网站页面上的大多数页面信息都是通过超链接的方式进行组织结构,这就给网络爬虫的抓取提供了很好的依据,Web Crawler可以顺着这样的超链接结构,通过初始给定的URL地址,抓取当前页面内的所有页面信息,每遇到一个网页就分析它的结构信息,URL地址信息,然后顺着这些地址继续开始下一次的爬取工作,整个过程完全是自动循环的,而且通过自动抓取网页的内容,通过有目的的设计和建立抓取内容索引库,这样就可以实现将查询

21、的结果反馈给用户,做到了很到的交互和可操作性。目前,通用网络爬虫进行爬取操作的普遍做法是,通过用户选择和筛选一个网站地址或者页面的URL地址,这个初始的地址也可以叫做是种子地址,通过这个种子地址,爬虫就可以开始进行网络信息抓取的第一步。从这个起点出发,它可以自动获悉当前页面上的各种文档,多媒体等信息,经过提取相关页面内容和超链接地址,就可以顺藤摸瓜,从一个URL地址开始不断的获取网页上的所有URL地址信息,抽取新的地址放入到爬取地址的队列库中,直到用户操作或者是满足软件设定的某些停止条件,爬取操作才停止对页面内容的抓取和搜索。这种方式设置比较简单,不需要太多的约束和抓取策略就可以开始抓取内容,

22、而对于有些有特殊需求的用户来说,其实并不想看到抓取的内容五花八门,与用户的心中预期有所差距,要想实现这类的抓取操作,那么就需要另一种改进的网络爬虫聚集网络爬虫。这种爬虫的工作流程不同与普通的网络爬虫,而且通过这种爬虫抓取内容和方式,基本上可以满足用户特定的抓取要求。首先爬虫会根据一定得页面内容分析算法,过滤掉与用户预期不相关的主题内容链接地址,通过分析保留那些相关的有用链接到自己的地址库中,而且也可以根据不同的搜索策略来确定要抓取的下一个网页的URL地址,将待抓取的网页地址放入到URL队列中,通过这样的过滤分析和筛选操作,不断重复和循环抓取网页内容,直达满足停止条件为止。这种爬虫抓取的网页内容

23、可以进行存储下来,通过一定得分析、过滤,整理和分类,就可以建立索引库,以便用户进行查询,检索等操作。在互联网信息迅速膨胀发展的今天,这种传统的爬虫固然能够抓取到一些数据,文档信息内容,然而在网站编程设计,页面实现设计的不断更新环境下,纯粹的依据传统的循环提取网页内容基本上不能满足现有的需求,而且抓取的数据和容量信息也只是网站内容的一部分而已,不能够做到对全站的深入抓取,故而要想更加有征对性的,更深入的抓取信息,就得改进其算法,优化搜索策略,提升它的爬取行性能,只有这样才能更好的适应现在日益变化的互联网发展。总得来说,网络爬虫有如下两个阶段的操作:第一阶段,通过有征对性的初始化一组URL地址,给

24、定爬虫工作的一个入口地址信息。第二阶段,随着爬取工作的进行,对于那些还没有被访问的URL地址将放入到待访问队列之中,根据设定的搜索策略和要求来觉得下一步进行的爬取工作。 其中,对于抓取的URL地址,一般采用下列的步骤进行: 1. 获取初始的种子URL地址,准备开始爬取操作。 2. 分析和解析当前地址的页面信息内容,获取可用的链接地址和数据。 3. 通过抓取的超链接地址,分析抓取的页面信息内容,存储当前内容。 4. 对新进入队列的URL地址,进行匹配,分析,规范化的处理。 5. 过滤掉那些与主题内容不相关的链接地址。 6. 将没有过滤掉得URL地址重新分配,放入到待处理的队列中等待。 7. 重复

25、步骤2,直到达到软件所设定的停止条件为止。第二节 网络爬虫的构成和分类1、 网络爬虫的构成Web Spider,是一个对网络爬虫很生动形象的名字。Spider顾名思义家就是蜘蛛,如果把资源丰富的互联网看做是一个很大的蜘蛛网,那么Spider就是在这张大网上随意爬行,自由爬取的网络蜘蛛。网络爬虫程序是通过给定的URL地址从网页上来寻求可爬取的地址,通常是搜寻网页中的超链接地址进行抓取操作的,通常的网络爬虫是从网站的某个页面进行抓取,读取当前页面下的可用的链接地址,进行下一次的抓取网页操作,通过分析文档链接地址,过滤掉不相关的页面地址,如此循环不断的抓取网页内容,直到完成所有的抓取操作为止。通过这

26、样的分析,可以形象的把网络爬虫程序看做是一个单纯的爬行程序,一个分析网页页面内容的程序,那么它的操作行为就可以看做是抓取网页。即使是一个简单的爬虫程序,也有比较完善的构成,具体构成模块如下所示:1. URL链接的地址库,这主要是用于存放爬取网页的URL地址信息,其中包括已经爬取的URL地址信息和进入地址库汇总等待爬取的地址信息。 2. 页面内容模块,这主要是用于储存那些从网页上下载的数据信息,文档信息,网页结构,日志文件,配置文档的各种信息。通过了解和分析这些文档信息可以获取页面上有价值、可用的信息资源。 3. 页面信息解析模块,用于是用来解析

27、下当前爬取操作下载的各种文件,数据信息等多媒体信息。比如普通文本信息,PDF文件,JPEG,JPG,GIF,MPEG,RMVB,MP3,WMA等文档, 图片,音乐,视频等信息。4. 存储数据信息的数据库。这其中包括对下载页面的结构信息,数据文档,配置等信息的存储,也包括对页面内容的具体分类存储等。 5. URL地址过滤模块,这主要是用来实现对特定抓取操作的限定约束,URL地址过滤可以很好的抓取与主题相关的内容网页,从而减少了工作量,也有很强的针对性。 二、网络爬虫的分类就目前而言,网络爬虫可以按照它的结构性质,实现原理和技术可以分为几大不同的类型,不管是

28、哪一种类型,都离不开它网络抓取的特性和原理。在目前实际的应用中,一般情况下,都是将几种爬虫技术集中聚合在一起,相互配合使用,以便实现更大程度的抓取资源,其大致情况可以有如下的集中分类:(一) 通用网络爬虫(General Purpose Web Crawler)这种网络爬虫一般情况下,依据的是用户预先定义好的一组或者若干URL地址信息开始抓取,通常从这些地址入口开始,顺着网页上的链接地址,可以不断的获取网页上的链接URL地址,获得新的种子地址到队列库中,进而可以有效地调度库中的URL地址信息,循环不断的从网站上下载资源。正是基于网页上HTML标记信息,文档结构的特征,可以将网页上的内容通过结构

29、化的方式存储在Web数据库中,从而满足抓取的可行性。具体的工作流程图如下所示:图2.1 通用网络爬虫工作流程图通用的网络爬虫固然可以不用太多的设置和约束就可以实现对初始给定的URL地址进行抓取,下载资源,但是它也有着一定得局限性,比如,首先由于它的抓取目标不是很大,因为没有进行抓取条件限制和搜索策略的分析,匹配,所以不能够做到匹配的最大户,自然抓取的范围很有限,无法覆盖较大的网络部分,而且这样的爬取结果就会导致抓取下载的资源可能包含大量用户不关心,不需要的页面内容,自然有一定的弊端。第二,通用的网络爬虫它不能够很好的处理和搜索信息比较密集且结构功能较为复杂,文档信息算法严密的信息资源,这样一来

30、,就不能够做到对大规模,密集型的数据进行集中抓取,有一定的局限性。第三,就目前而言,大多数的搜索引擎,基本上都是采用关键字匹配,基于关键词的信息检索,通过这种匹配方式抓取的资源没有一定得可参考性,包含无关页面内容较多,而且也不利于浏览和查阅,对于支持语义分析,有特殊约束条件的只能搜索却很难实现。所以,总得来说,这类网络爬虫的应用只能作为个人用户单纯的爬取简单页面内容的信息抓取和搜集,分析应用,不能保证页面的质量和搜索的效率问题。(二)主题网络爬虫(Topical Web Crawler)主题网络爬虫则不同于通用的爬虫信息抓取,它或许并不追求像通用爬虫那样比较大的覆盖率,也不会无限制的进行资源下

31、载和爬取,它通过有选择的过滤和分析抓取得到的URL超链接地址,分析匹配页面的文档结构信息等,确定符合需求分析的主题URL地址,通过这样的操作,它可以有目的性的访问互联网上的相关链接,获取用户感兴趣的资源信息,不仅过滤掉了用户不关心的网页内容,同时也进一步提高了抓取资源的效率和质量,使得爬取返回的资源更精确和可靠,具有很强的征对性和可利用性22。 这种类型的网络爬虫基本工作原理和传统的网络爬虫有点类似,但又有所差别,首先它会根据用户自定的主题信息,分析给定的初始URL地址,通过一定的策略分析和匹配,过滤,抓取那些和目标需求相关的超链接地址,获取下一个即将要爬取的URL地址,并尽可能是实现对主题内

32、容相近的所有主题内容网页进行抓取和下载,通过这样的抓取分析,可以得到最接近用户所需要的网页内容和主题信息。为了实现对用户所设定的爬取资源最大的接近化,爬取资源的质量和效率有效性,主题网络爬虫需要改进一些地方,以便达到更好的抓取结果。1、如何进行分析和选择一个URL链接地址是否与用户设定的主题内容具有一定得相关性,从而确定爬取资源的可靠性;2、采用什么样的策略和方式,过滤掉互联网上海量的无关页面内容和与主题内容相关程度比较低的网页信息,这是保证抓取资源的质量性问题的关键;3、如何有目的性,有选择性,有征对的对抓取资源的分析和处理,从而确定所要抓取的资源确实和主题相关;4、如何决定当前URL地址库

33、中的队列地址的分配问题;5、如何提高抓取资源的深度扩展,得到覆盖程度更大的信息资源;6、如何组织,分析,协调对所要抓取目标的描述和定义分析,采用什么样的搜索策略和分析算法对URL地址信息进行页面内容的提取和下载;7、抓取目标的描述或定义与网页分析算法及候选URL排序算法之间的关系; 通过这些问题,可以看出主题网络爬虫要想实现对用户特定需求的抓取操作,即使有一定的效率和保障,但是仍然有诸多问题需要改进和细化,只有这样才能更好的匹配和分析互联网上的信息,从而实现对用户不同种类,不同功能需求的网络抓取有着一定得技术保障和可参考性。下图介绍的事主题网络爬虫的结构示意图,同图中可以看出,主题网络爬虫中各

34、部分的作用和相互协作情况,通过了解其模块的相互实现,支持,就可以更好的了解和改进主题网络爬虫。图2.2 主题爬虫结构图主题网络爬虫的实现,依据的是一定的网页分析算法,这类算法的实现可以过滤掉与主题不相关的页面内容,分析出来那些链接地址和主题内容有一定的相关度,那些内容属于相关程度较差的网页内容,并且通过分析可以将有用的链接地址放入到等待抓取的URL队列库中。这些等待抓取的地址信息,可以被具有一定搜索策略的分析算法抽取和选择,从而实现对相关的网页内容进行有征对性的资源抓取,知道抓取完所有的URL地址或者满足某种结束条件为止。通过这样的爬取操作,被网络爬虫所抓取的网页就会存储在系统中,这样,经过一

35、定得分析算法进行筛选和过滤操作,就可以建立页面内容的索引库,从而实现对抓取资源的有效利用,对资源的集中管理和分析,方便了用户的查询和修改。其工作流程如图2.3所示:图2.3 主题网络爬虫工作流程图第三节 网络爬虫的搜索策略分析1、 网络爬虫程序广度优先搜索策略这种搜索策略是一种比较常见,也是一种早些时候使用较多的搜索方法,它所要达到的目的其实就是进行搜索文档结构达到结点内哦那个,这其中不包含哪些使用了超链接的HTML文件内容。在互联网上,许多的文档结构都是采用标签的方式进行组织,当网络爬虫进行网页上信息抓取时,它首先对所遇到的页面内容进行结构化处理,面对一个HTML的文件信息,在分析和搜索它之

36、前都将会完整的搜索一条单独的链地址,然后沿着这个地址路线进行向下爬取,其中它依据文档的标签内容,选择或者跳过一些不必要的结构,比如页眉,备注,注释,换行分割等,直到抓取完HTML文件上所有的链接为止,然后返回结果,输出爬取的文件信息。当遇到不可抓取的链接地址和操作时,搜索过程结束。网络爬虫的这种深度优先策略的优点是可以抓取和遍历一个网站,或者通过某种策略的选择,进行深层嵌套对文档的分析,集合操作24。2、 网络爬虫程序宽度优先搜索策略网络爬虫的宽度搜索策略是一个不同与广度优先的搜索策略,它不会在万维网中抓取资源时出现对无穷的链接分支进行循环抓取,它所做的就是搜索一个网站上完整的超链接地址,通过

37、这个超级链接地址进行分析和搜索,一层一层向下搜索,知道底层的链接地址为止。比如,网络爬虫抓取资源时,可能会遇到有四个链接地址的HTML文档,那么它首先会分析和选择一个链接进行抓取,通过处理这个HTML文件,就可以过滤掉在该文件中的所有标签,链接信息,而不会对其他三个链接地址采取任何处理,直到分析完当前文件信息才返回下一个HTML文件,这样一层一层的处理,返回,知道所有的四个链接都已经被处理之后,那么就可以遍历所有的文档信息,搜集到所需要的页面信息。宽度优先搜索策略的好处就是,通过这种搜索策略分析的网页,可以在两个HTML文件之间进行寻找最佳的抓取路径,从而实现高效的抓取。这种搜索策略也通常认为

38、是最佳的爬取策略,那是因为这样的爬虫策略,不仅很容易实现,而且操作也方便,更值得关注的是它具备了大多数爬虫搜索的策略,也具备想一想的功能,可以达到预期的目标。然而,现在互联网技术的快速发展,网页结构内容的多样化,实现技术也各有不同,如果对一个指定的Web站点进行深层遍历,那么用宽度优先策略可能需要较多得时间去发掘和爬取,才能遍历深层嵌套的文件,纵观当前应用的策略和国内外信息导航搜索的特点分析,一般是采用宽度优先策略为主的做法,对于不需要被抓取和关注的文件,宽度搜索往往会忽略23。三、网络爬虫程序IP地址搜索策略这种爬虫搜索策略比较简单,通常做法就是给定一个初始的IP地址,通过这个地址所能链接的

39、页面信息,用递增或者递减的方式分析和处理IP地址,从而得到在该IP地址后出现的每一个相关文档。这样的做法完全不会考虑文档中出现的链接地址,也不会考虑究竟链接地址指向何处,有没有主题内容相关度,而只是单纯的搜索页面信息内容。这种搜素策略有点就是通过IP地址分析,不会考虑页面上的链接和文档结构,搜索比较全面,而且能够发现没有被其他文档引用的信息资源,这一点意义很大。缺点就是这种搜索策略只是通过IP地址来分析,不适合大规模的进行网络搜索。四、专业搜索引擎的网络爬虫程序策略网络搜索引擎发展到现在,很多搜索策略已经不是单纯的进行搜索。对于专业的搜索引擎网络更多的则是采用“最好最优”的原则来访问Web资源

40、,像百度,谷歌等这样的搜索引擎,通过输入关键主题信息,原则上搜索结果一定是最优,最具有主题相关的结果。那么进行每一次搜索的时候,这样的搜索引擎都会选择这些最有价值的,排名靠前,和主题内容最接近的网页链接进行访问,由于在专业的搜索引擎里,这些页面的价值成分,已经通过专业搜素引擎数据库的记录和保存,通常具有较高价值的页面内容都会被优先的列取出来,以提供给用户搜索的最佳返回结果。第3章 Heritrix网络爬虫简介第1节 Heritrix系统结构1、 Heritrix系统介绍Heritrix网络爬虫工程最初创建与2003年,当初创建它的目的主要是为了解决对当时网络上的资源进行归纳,整理和建立一套完整

41、的网络数字信息库12。对于Heritrix网络爬虫工具而言,这是一个特殊的爬虫,它不仅可以从网络上随意抓取页面内容,也给用户提供了很好地扩展接口,以便用户扩展和改写自己的实现类,继承相关的接口,类等信息。因为它是开源的,并且免费的WEB信息网络爬虫工具,开发者可以尽情的利用它所提供的各个组件进行扩展,以此来实现自己的抓取策略和实现逻辑。它最大的特色就在于它强大的可扩展功能,在过去的这些年里,对于网络爬虫的扩展和应用已经发展的很热门,许多有代表性的成功和研究已经应用到了实际的搜索引擎系统中。对于Heritrix网络爬虫工具,诸多开发者和搜索引擎公司都对其系统结构和组件进行过研究和扩展开发,在不断

42、的改进搜索策略和完善搜索的高效性内容,对于现在的爬虫,研究者更希望它能够实现以下几个方面的内容14。首先是宽带网络爬虫,这样的爬虫更多的是希望它能够以更高效的,高宽带的站点去爬取操作,从而使得网络爬虫能够实现抓取效率更高,更有效率。其次就是主题网络爬虫,这类爬虫应用比较广泛,而且受关注程度也很高,由于它满足了特定需求的抓取工作,所以对于集中的需求问题,它可以根据有效地搜索策略和分析算法达到很好的效果,受到不少开发者的喜爱。第三,就是实验爬虫,这类爬虫抓取网页不仅仅停留在当前已经更新的网页,它还会监视和追踪网站动态,更新信息,负责爬取网站内容更新后的网页,具有很强的实时动态性,也是开发研究应用很

43、广的爬虫。 (1) Heritrix的系统架构Heritrix的系统结构是采用了模块化的设计,这种设计对于开发或者研究都是佷有帮助的。因为模块化的设计,可以使得系统的实现各部分工作既分离又相关,通过研究和改进某一模块,不仅可以增加系统的功能实现,也可以更加有效地对整体系统的运行有很深得理解。Heritrix的控制器是整个爬虫工具的核心,它由一个叫控制器类来协调的,这个类相当于Heritrix的大脑控制中心,协调整个爬虫的运行和搜索。关于这个类的结构如图3.1所示:图3.1 Heritrix的CrawlController类结构图CrawlController类是整个Heritrix的整体控制中

44、心,也是整个网络爬虫的总指挥,它负责控制整个抓取工作的开始和结束。其中CrawlController从Frontier(边界控制器)这个类中获取URL的地址信息,由CrawlController负责调度和处理,开启网络爬虫的工作。边界控制器类记录了URL地址库中哪些地址被抓取,哪些地址还没有被提取,对于进入待处理队列的URL地址,边界类会选择符合需求的下一个地址进行继续爬取,同时也会排出哪些已经处理过的URL地址。对于结构图中处理器链的功能则是包含了若干获取到的URL地址信息,通过分析这些地址的页面信息,可以将结果返回给边界控制类,从而实现对各个类的相互协调工作。其中,对于Heritrix网络

45、爬虫工具的整体架构,如图3.2所示:图3.2 Heritrix系统整体结构从图中可以看出,Heritrix总体看来就相当于一个平台,内部有许多的组件和控制类,各部分之间连接的非常紧密,也很有特点。其中任何一个部分或者组件,都可以拆卸并且进行扩展和更换,正是因为有这个特点,所以才给开发者提供了很好的机会。对于这种高度可扩展的平台结构来说,实现自己的扩展类,改进和研究Heritrix都是很有帮助的。下面就介绍一下Heritrix网络爬虫工具的各个组件作用:1、 CrawlController首先,CrawlController(中央控制器)作为Heritrix的核心大脑控制中心,有着非常高度地位,

46、它是整个抓取任务的核心部件,也是整个爬虫工具抓取网络资源的第一控制者。通过分析和研究中央控制器,可以了解Heritrix是如何实现对抓取资源进行整体开始结束控制,并且对控制的过程有哪些要求和设定。2、 CrawlOrder CrawlOrder即网络爬虫的抓取任务类,当中央控制器发出命令开始抓取工作时,那么它就被赋予了一个任务的属性值,从这里看到在创建任务时的一系列配置和爬取参数设置,可以说它是整个网络抓取工作的起点,从这里出发,网络爬虫就可以开始对资源进行抓取。3、 Frontier Frontier这是一个URL地址链路组件,通过它可以控制所有被爬虫所抓取得URL地址信息,也就是说它负责所

47、有的链路处理,对于已经爬取的地址做标记,未被抓取处理的URL地址进行调度很分配,或者剔除,或者加入到待处理队列,等待下一次的网络爬取开始。这个组件能够很好的分配网络爬虫抓取资源的地址资源,也是如何提高爬虫搜索策略和高效性的一个扩展组件之一。4、 ToeThread这是Heritrix的一个线程控制组件,通过它可以对每一个被抓取的URL地址进行线程处理,在Heritrix创建抓取任务的时候,系统默认分配50个线程使用,每个URL地址都会被一个线程所处理,这些线程随着网络抓取任务的时候,有的或被使用,或是因为URL地址无效或者不符合搜索需求所废弃,由Toe Thread 组件集中统一回收和利用,为

48、下次抓取的URL地址进行逐一分配和处理,这是很有必要的。Heritrix有很友好的Web管理界面,通过DOS命令或者倒入Myeclipse工程,在配置好各种运行环境后,就可以通过它自带的服务器Jetty进行登录管理操作。通过Web界面,操作者就可以通过中央控制器Crawler命令来操作,这个Crawler命令也可以通过修改它的配置文件order.xml文件来修改,以此来实现对整个爬虫工作的总体控制。通过分析Heritrix的整体结构和实现原理,可归纳出它具备以下特征:1、 它可以在多个独立的不同站点中,进行不断的循环抓取资源信息。2、 它总是从一个初始的地址出发,顺着地址链接爬取页面内相关的主

49、题信息。3、 它主要利用宽度优先,深度优先等搜索策略进行抓取资源。4、 它的主要部件基本上都是可扩展的。在进行Heritrix网络抓取操作时,可对抓取的各部分环节进行设置,其中可 设置的地方如下:1、 可以设置抓取文件,种子文件,抓取日志信息的文件存放位置。2、 可以设置Heritrix抓取任务最大的下载字节数,最多的等待时间,最大的文 档大小等。3、 可以设置Heritrix网络爬虫抓取线程的最大数量,初始默认为50。4、 可以设置所利用网络宽带的大小,网络宽带的上传下载大小。5、 可以设置Heritrix爬虫的一些过滤规则,搜索策略表达式,URL地址分析路 径等等。(二)Heritrix系

50、统工作流程Heritrix网络爬虫作为一个能够抓取网络资源的爬虫框架,不仅是对用户免费的,开源的框架,也提供了很多可扩展和交互的组件功能,通过这些组件和功能,操作者可以扩展定义自己的功能需求。一般来讲,Heritrix的执行操作是递归进行的,主要的步骤基本如下所示: 1、 初始化URL地址库,从地址库中选择一个或一组种子地址开始抓取操作。2、 获取该地址的页面信息,提取页面的超链接地址,并不断向下进行爬取操 作,同时保存抓取的文件信息。3、 通过分析,筛选,整理下载的文件信息,并将其保存在本地的磁盘中。 4、 从抓取的网页的日志文档,种子文件,输出日志中搜寻符合需求的URL地 址,并将其放入到

51、待处理的URL地址队列中,等待下次抓取。 5、 标记爬虫所处理过的所有URL地址信息,提取待处理的URL地址,准备进 行下次抓取操作。6、 重复第一步操作,直到所有的待处理的URL地址都已经处理完毕,则爬取 工作结束。图3.3 Heritrix的工作流程图其中,BdbFrontier组件是Heritrix网络爬虫的URL地址处理器,它的工作是将URL地址库中的地址进行统一管理和分配,主要是对即将处理的URL地址进行处理。而PreProcessor组件的作用就是对Heritrix进行网络抓取时的一些先决条件的判断。对于Fetcher组件则是Heritrix网络爬虫用于解析网络爬虫抓取网页内容的传

52、输解析协议,通过它的支持,能够使得Heritrix更有效地进行抓取工作。Extrator组件的功能主要是用于分析下载网页的内容以及服务器上所返回来的信息。Writer组件,顾名思义就是把抓取得到的内容写入到本地的磁盘中,以便用户查看分析。PostProcessor组件的作用是将解析出来的URL地址根据用户的设定,有条件的加入到待处理的队列中。第二节 Heritrix的源码分析1、 Heritrix主要类说明 Heritrix网络爬虫框架的类非常丰富,同时也很复杂,类与类之间的继承关系也是相当的繁杂,这就使得对于Heritrix的掌握难度很大,下面就介绍一些Heritrix中一些用到的组件的类。1. 网络爬虫的org.archive.crawl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论