毕业论文面向web service的网络爬虫设计与实现15639

上传人:沈*** 文档编号:82497213 上传时间:2022-04-29 格式:DOC 页数:78 大小:1.54MB
收藏 版权申诉 举报 下载
毕业论文面向web service的网络爬虫设计与实现15639_第1页
第1页 / 共78页
毕业论文面向web service的网络爬虫设计与实现15639_第2页
第2页 / 共78页
毕业论文面向web service的网络爬虫设计与实现15639_第3页
第3页 / 共78页
资源描述:

《毕业论文面向web service的网络爬虫设计与实现15639》由会员分享,可在线阅读,更多相关《毕业论文面向web service的网络爬虫设计与实现15639(78页珍藏版)》请在装配图网上搜索。

1、毕业设计(论文)说明书学 院 软件学院 专 业 软件工程 年 级 07级 姓 名 梁其烜 指导教师 冯志勇 2011年 6 月 15 日毕业设计(论文)任务书题目:面向web service的网络爬虫设计与实现学生姓名 梁其烜 学院名称 软件学院 专 业 软件工程 学 号 3007218123 指导教师 冯志勇 职 称 教授 一、 原始依据(包括设计或论文的工作基础、研究条件、应用环 境、工作目的等。) Web Services技术是一种基于XML语言和标准的网络协议实现的分布式计算技术。Web Services技术是可以改变软件产业面貌和软件应用模式的技术之一。Web Services技术可

2、以将Internet上的各种信息资源和服务功能整合在一起,在任何时间、任何地点向用户提供优质的服务。Web Services技术还有助于改变企业对IT系统的应用方式和依赖程度。所以Web Services技术成为了网络上的主流技术之一,随之也来的是大量的开发人员开始开发Web服务,随着时间的推移,网络上出现了大量的Web 服务。但是,大量的Web服务分布在网络中的各个地方,给用户寻找特定功能的服务造成了不小的麻烦,也给服务开发者在原有的服务上进行再次开发造成了不便。本课题的任务就是研究如何把网络上分散的Web服务搜集在一起。二、 参考文献1孙立伟,何国辉,吴礼发;网络爬虫技术研究;Comput

3、er Knowledge and Technology 电脑知识与技术;Vol.4,No.15,May 2010,pp.4112-41152李盛韬,余智华,程学旗.Web信息采集研究进展【J】.计算机科学,2003.3S.Chakrabarti,M.van den Berg and B.Dom.Focused Crawling: A New Approach to Topic-Specifi Web Resource DiscoveryC.In Proceedings of the 8th International World Wide Web Conference, Toronto, Ca

4、nada, 1999.4郑力明,易平;Design of Crawler Based on HTML Parser Information Extraction;微计算机信息,Microcomputer Information;09,June,2009。 5J. Cho, H. Garcia-Molina. The evolution of the web and implications for an incremental crawler C. In Proceedings of the 26th Inter-national Conference on Very Large Databa

5、se, Cairo, Egypt, 2000. 6李文泽;个性化垂直搜索引擎研究;河南大学;2007-11-07;7曾伟辉,李淼. 深层网络爬虫研究综述J. 计算机系统应用, 2008. 8周立柱 ,林玲. 聚焦爬虫技术研究综述J.计算机应用, 2005年9月.9S. Chakrabarti, M. van den Berg and B. Dom. Focused Crawling: A New Approach to Topic-Specific Web Resource Discovery C. In Proceedings of the 8th International World W

6、ide Web Conference, Toronto, Canada, 1999. 10陈汶滨,夏学梅. 基于聚焦爬虫的手机天气预报系统J. 今日科苑. 2009年第2期.11邱哲,符滔滔. 开发自己的搜索引擎-Lucene 2.0+Heritrix. 人民邮电出版社, 2007-4.12罗刚. 自己动手写网络爬虫. 清华大学出版社. 2010-10-1;13Heritrix官方网站EB/OL. crawler.archive.org14seeda网站EB/OL. 15网络爬虫EB/OL. 三、设计(研究)内容和要求(包括设计或研究内容、主要指标 与技术参数,并根据课题性质对学生提出具体要求

7、。) 本系统将要达到以下目标:l 提供给用户一个种子文件,用户可以设置抓取Web服务的网站地址。l 根据种子地址,搜索种子网站上的Web服务。l 把搜索到的Web服务相关信息存入数据库中。为了达到以上目的,本系统将对Heritrix开源框架进行扩展,并针对服务网站上服务的特点选择合适的爬虫抓取过程。当服务网站提供了详细的服务信息,且网站服务的分布结构是有规律的,那么通过对网站结构的分析,可以得到网站中服务分布的一颗树,并用形式化语言描述这棵树,而经过扩展之后的爬虫对这颗树进行遍历,就实现了抓起网络上分布的Web Service。当服务网站没有提供服务的信息,只提供了WSDL文档的URL,那么就

8、遍历网站中所有的本网站的网页,并判断网页中的链接是否是WSDL文档的URL,如果是,就下载该WSDL文档。 指导教师(签字)年 月 日审题小组组长(签字)年 月 日天津大学本科生毕业设计(论文)开题报告课题名称Web Services 网络爬虫学院名称软件学院专业名称软件工程学生姓名梁其烜指导教师冯志勇一、 课题来源及意义: 互联网上的服务数量正快速的增长,分布在不同的网站上,导致服务的用户需要在不同的网站之间寻找一个或者多个符合自己需求的服务,对于服务开发者来说,他们无法快速、准确的得知现有的服务开发现状,服务开发者无法重用现有的服务,重复开发已有的服务,导致一个糟糕的服务开发环境。 本课题

9、的任务是抓取互联网上分散的服务,具有重要意义:本系统把互联网上的服务都收集起来,并存储在本地数据库。用户或者服务开发者就可以在基于该本系统数据库的搜索引擎中查找到所有的互联网上大部分的服务,节省了在不同网站间查找服务的时间。服务用户可以快速、准确的找到符合自己需求的服务,服务开发者可以快速得知服务开发现状,避免重复开发,并且可以利用现有服务进行组合开发等。二、 国内外发展状况: 收集互联网上的信息的系统被称为网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),它是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,

10、模拟程序或者蠕虫。网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型1:通用网络爬虫2、聚焦网络爬虫8、增量式网络爬虫5、Deep Web爬虫7。通用网络爬虫2又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web ,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。通用的网络爬虫大多应用于大型门户网站或类似于google这样的搜索引擎15。 聚焦网络爬虫(Focused Crawler),又称主题网络爬虫(Topical Crawler ),是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫3。随着垂直搜索的蓬勃发展,聚焦

11、网络,也就是主题网络爬虫成为研究的前言,4提出通过深入分析生活类网站网址的树形结构的架构,开发了收集种子页面的URL的模拟搜集齐,并基于HTMLParser的信息提取方法,从种子与页面中提取出与生活类主题相关的目标URL。增量式网络爬虫(Incremental Web Crawler) 5是指对已下载网页采取增 量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上 保证所爬行的页面是尽可能新的页面 。本课题研究的是针对Web服务的聚焦网络爬虫技术。因为聚焦网络爬虫技术能最快的,最准确的搜索Web服务信息。本课题并不是重新开发一个爬虫程序,而是在现有爬虫开源框架的基础上进行扩展

12、。现有的网络爬虫框架有很多,例如:Heritrix、Nutch、Larbin、J-Spider等。Heritrix13是一个由Java开发的、开源的Web网络信息采集程序。和其他开源的爬虫程序相比,Heritrix的优势在于它的扩展性,开发者可以扩展它的组件,来实现自己的抓取逻辑6。现已有很多应用是在Heritrix上开发的。例如:基于聚焦爬虫的手机天气预报系统,它是在Heritrix的基本功能上进行扩展11和修改12。 由以上对爬虫类型和爬虫框架的发展现状分析,本课题使用Heritrix开源框架,并通过分析网络上分布Web服务的网站的树形结构的架构,实现针对Web服务主题的网络爬虫。三、 目

13、标和内容:我的研究目标是:把互联网上广泛分布的Web Service搜集起来,把相关信息存入数据库,存在两种情况:第一种情况:网站上的服务提供了关于服务的相关信息,那么本系统需要在抓取服务wsdl文档的同时,获取服务的相关信息。针对这种情况,主要的研究内容如下:1.开源框架Heritrix的扩展 因为现有的开源爬虫框架Heritrix提供了网络搜索的基本结构,所以,我会扩展Heritrix框架,使该框架适用于本系统。a. 重新改写Heritrix框架处理流程中的过滤链,以过滤不需要访问的网页。b. 重新改写Heritrix框架处理流程中的提取链,以提取网页包含的信息。c. 重新改写Heritr

14、ix框架处理流程中的写链,以下载搜索到的wsdl文档。 2.对网站服务分布结构的分析a. 对网站所有Web Service的分类页面进行分析,分析出含有所有Web Service的种类URl的table表格结构和URL的结构。b. 对某类别Web Service页面进行分析,分析出含有所有该类别Web Service的详细信息页面URL的table表格结构和URL的结构。c. 对Web Service详细信息页面进行分析,分析出包含所有与该Web Service相关的信息的table表格结构。通过对网站结构的分析,可以得到网站中服务分布的一颗树,并用形式化语言描述这棵树。采用数据结构中的树结构

15、来描述网站服务的分布树,而经过扩展之后的爬虫得到根节点,并通过根节点对整棵树进行遍历,就实现了抓起网络上分布的Web Service。第二种情况:网站上只提供了服务的wsdl文档的url,没有其它信息,那么本系统就只需要抓取服务的wsdl文档,也就不需要分析网站服务分部结构。针对第二种情况,主要的研究内容如下:重新改写Heritrix框架处理流程中的写链,以下载搜索到的wsdl文档。利用httpClient编写下载wsdl程序。四、 方法和手段:在扩展Heritrix框架的过程中,遇到的问题或者使用的插件如下:1. 在改写Heritrix框架的提取链时,需要从分析网站结构中得到需要遍历的网页U

16、RL。2. 在改写Heritrix框架的写链时,涉及到访问远程服务器,下载wsdl文档。解决该问题时,我们用到了HTTPClient插件,该插件能够实现下载远程服务器上的文档,还可以设定连接时间等。3. 由于Heritrix框架提供了完善的UI界面操作,但是没有提供完整的代码启动程序,同时本课题需要把爬虫启动操作嵌入到其他程序中,所以需要编写Heritrix的代码启动模块。在分析网站结构时,需要用到HTMLParser插件,该插件能够实现对网页的详细分析,包括获取所有网页标签信息等功能。利用该插件,我们可以准确无误的获取服务的所有详细信息。在分析网页结构时,需要人工对网页的包含信息的标签进行分

17、析,得到该下信息分布的情况,然后使用HTMLParser准确定位到需求信息的位置,并提取信息。分析网站结构过程如下:1. 提供一个包含所有Web service类别的网页的URL,分析该网页,用以上分析页面的方法提取出所有的类别页面的URL,取出一个服务类别页面URL。2. 并对该类别页面进行分析,提取出所有的Web service详细信息页面的URL。3. 对详细信息页面进行分析,提取出所有与Web service相关的信息。4. 把这些相关信息存入到数据库中。5. 提取下一个类别URL。并重复2步骤。 爬虫无限循环执行对页面的分析,直到没有未访问过的URL存在。五、可行性分析:网络上Web

18、服务的飞速增长,例如网站的服务数量达到了2万多个,且服务的种类很多,为本系统提供了非常好的搜索源。并且网站的分布结构十分清晰,有利于我们设计简单有效地搜索策略。同时网络爬虫技术的飞速发展,各种爬虫开源框架的出现,为我们的爬虫系统提供了良好的技术基础。在开源框架的基础上,结合对Web服务网站的结构分析,就可以实现对网络上分布的Web服务抓取。六、 进度安排:1. 学习与爬虫相关的基本知识,10.11.20至11.1.20。 2. 概念抽象,对于web services 爬虫的分析和设计,11.1.20至11.3.10。3. 构建web services 爬虫,11.3.10至11.4.10。 4

19、. 编程实现与爬虫测试,11.4.10至11.5.1。5. 基于此系统,完成论文,提出自己的主张,11.5.1至11.6.10。七、 参考文献:1孙立伟,何国辉,吴礼发;网络爬虫技术研究;Computer Knowledge and Technology 电脑知识与技术;Vol.4,No.15,May 2010,pp.4112-41152李盛韬,余智华,程学旗.Web信息采集研究进展【J】.计算机科学,2003.3S.Chakrabarti,M.van den Berg and B.Dom.Focused Crawling: A New Approach to Topic-Specifi We

20、b Resource DiscoveryC.In Proceedings of the 8th International World Wide Web Conference, Toronto, Canada, 1999.4郑力明,易平;Design of Crawler Based on HTML Parser Information Extraction;微计算机信息,Microcomputer Information;09,June,2009。 5J. Cho, H. Garcia-Molina. The evolution of the web and implications for

21、 an incremental crawler C. In Proceedings of the 26th Inter-national Conference on Very Large Database, Cairo, Egypt, 2000. 6李文泽;个性化垂直搜索引擎研究;河南大学;2007-11-07;7曾伟辉,李淼. 深层网络爬虫研究综述J. 计算机系统应用, 2008. 8周立柱 ,林玲. 聚焦爬虫技术研究综述J.计算机应用, 2005年9月.9S. Chakrabarti, M. van den Berg and B. Dom. Focused Crawling: A New

22、Approach to Topic-Specific Web Resource Discovery C. In Proceedings of the 8th International World Wide Web Conference, Toronto, Canada, 1999. 10陈汶滨,夏学梅. 基于聚焦爬虫的手机天气预报系统J. 今日科苑. 2009年第2期.11邱哲,符滔滔. 开发自己的搜索引擎-Lucene 2.0+Heritrix. 人民邮电出版社, 2007-4.12罗刚. 自己动手写网络爬虫. 清华大学出版社. 2010-10-1;13Heritrix官方网站EB/OL.

23、 crawler.archive.org14网络爬虫EB/OL. 15Roberston, L. Anecdotes Google search engine J. Annals of the History of Computing, 2005, Volume 27: 96-97. 选题是否合适: 是 否课题能否实现: 能 不能指导教师(签字)年 月 日选题是否合适: 是 否课题能否实现: 能 不能审题小组组长(签字)年 月 日摘 要互联网上的服务数量增长快速,网站提供的关于服务的信息也各异,导致用户难以正确、快速的找到合适的服务,为了解决以上问题,需要获取和保存服务的WSDL的URL和相关

24、的服务信息。本文完成了一个Web服务信息分析、抓取的网络爬虫,主要研究开发内容有:1)分析服务网站结构:在抓取某个网站上的服务前,要人工的分析出该网站哪些页面需要抓取,哪些页面中哪些信息需要抓取;2)页面信息提取:根据人工分析出的哪些页面中哪些信息需要抓取的结构,使用HtmlParser工具抓取页面中的信息。3)下载WSDL文档:在抓取到了服务WSDL的URL后,使用HtmlClient下载WSDL文档。4)加载服务信息到数据库:把在页面信息提取中得到的关于服务的信息存入数据库中。 通过对Web服务的抓取,用户可以通过统一的入口来访问这些服务,而不用在互联网上盲目搜索。为服务的使用和开发提供更

25、加便利的平台环境。关键词:爬虫;网络服务;WSDL;ABSTRACT The number of services on the Internet Increase quickly,the information sites provide about services is also different, leading to that it is difficult for users to correctly and quickly find the right services, in order to solve the above problems, needing to capt

26、ure and store the services WSDL URL and related service information. This paper completed a Web Crawler about Web service information analysis and crawl.The main research and development contents are: 1) Analysis Service Web site structure: before capturing the services on a Web site, needing to man

27、ually analyze which pages of the site need to be captured, and which information in which pages needs to be captured; 2) Page information extraction: According to the manual analysis that which information in which paper needs to be captured, then using HtmlParser tools to capture the information in

28、 the page; 3) Downloading the WSDL document: capturing the service WSDL URL, and then using HtmlClient to download the WSDL document.4) Loading service information into the database: store the information about the service into the database. After Crawling the Web service, users can access Web servi

29、ces through a unified portal , rather than blindly searching on the Internet.Providing a more convenient platform environment for the use and development of services.Key words:Crawler;Web service;WSDL;天津大学2011届本科生毕业设计(论文)目 录第一章 绪论11.1 问题的背景和意义11.2 研究目标和目的11.3 全文安排2第二章 相关工作和需求分析32.1 相关工作32.2 功能说明42.3

30、 运行环境4第三章 面向web service的网络爬虫详细设计53.1 总体架构53.2 数据库设计63.3 程序包设计73.4 流程设计8第四章 面向web service的聚焦网络爬虫技术实现134.1 分析网站服务分布结构134.2 网页内容提取154.2.1 服务提供商集合页面内容提取154.2.2 服务提供商页面内容提取184.2.3 服务详细信息页面内容提取204.2.4 页面链接提取224.3 下载WSDL文档244.4 结果展示24第五章 总结和展望295.1 论文总结295.2 存在的问题和展望29参考文献30外文资料中文译文致 谢2天津大学2011届本科生毕业设计(论文)

31、第一章 绪论1.1 问题的背景和意义 随着互联网的飞速发展,应用程序的集成,软件和数据的重用成为互联网发展的障碍。Web 服务的出现有效的解决了以上难题。Web服务允许应用开发者对不同语言,不同平台的应用程序进行集成,允许在程序中调用Web服务。正因为Web服务的有效的解决了以上问题,互联网上的服务发展迅速,服务数量飞速增长。服务数量的增长,使得用户查找服务变得困难。另外,Web服务的发展也产生了另外一个应用模式:组合应用(Mushup),把不同的Web服务进行组合,满足用户需求。现在,互联网上存在许多被动的,集中式的服务注册网站,这类网站上的服务可能大部分来源于网站国家的开发者,服务功能针对

32、某一领域。但是通过主动式的爬取,获得并存储互联网上的服务,对服务进行集中管理,有利于对用户提供统一的访问方式,有利于对互联网服务的分析,提高组合的效率。1.2 研究目的和主要内容为了对互联网服务进行集中管理,需要将互联网上的服务信息存放到数据库中。所以本论文的目的是:通过爬虫抓取,得到互联网上的Web服务信息,并把服务信息存放到数据库中。为了实现该目的,本论文的主要研究内容包括:第一种情况:网站上的服务提供了关于服务的相关信息,那么本系统抓取服务WSDL文档的同时,获取服务的相关信息。针对这种情况,研究内容如下:1.开源框架Heritrix的扩展 因为现有的开源爬虫框架Heritrix提供了网

33、络搜索的基本结构,所以,我会扩展Heritrix框架,使该框架适用于本系统。a. 重新改写Heritrix框架处理流程的过滤链,过滤不需要访问的网页。 b. 重新改写Heritrix框架处理流程的提取链,提取网页包含的信息。 c. 重新改写Heritrix框架处理流程的写链,下载搜索到的wsdl文档。 2.对网站服务分布结构的分析 a. 对网站Web服务的分类页面进行分析,分析出含有所有Web服务的种类URL的table表格结构和URL的结构。 b. 对某类别Web Service页面进行分析,分析出含有所有该类别Web服务的详细信息页面URL的table表格结构和URL的结构。 c. 对We

34、b服务详细信息页面进行分析,分析出Web服务信息的table表格结构。通过对网站结构的分析,可以得到网站中服务分布的一颗树,并用形式化语言描述这棵树。采用数据结构中的树结构来描述网站服务的分布树,扩展后的爬虫得到根节点URL,通过根节点对整棵树进行遍历,抓起网站所有的Web服务。第二种情况:网站上只提供了服务WSDL文档的URL,本系统只抓取服务WSDL文档,不需要分析网站服务分部结构。针对第二种情况,主要的研究内容如下:重新改写Heritrix框架处理流程中的写链,以下载搜索到的WSDL文档。利用HttpClient编写下载WSDL程序。1.3 全文安排 全文共分为六章。第一章 主要介绍本课

35、题研究背景,以及研究意义,明确课题主要研究内容,给出全文的组织结构。第二章 介绍了互联网上的服务的分布情况和相关爬虫技术,并对需求进行分析,包括功能说明和运行环境。第三章 提出了系统的设计和结构,其中包括总体架构、数据库的设计、工程包的设计和详细的流程设计。第四章 在第三章得基础上给出了具体的实现方法,其中主要包括分析网站服务分部结构、页面内容提取、下载WSDL文档以及结果展示。第五章 是对全文工作的总结,指出并分析了现阶段存在的问题并展望了未来的发展前景。 第二章 相关工作和需求分析2.1 相关工作随着Web服务开发者数量的增加,互联网上的Web服务数量以爆炸方式增长。伴随着Web Serv

36、ice的数量的增长,越来越多的网站关注于如何吸引开发者把服务发布在他们的网站中,这些网站采用了服务开发者在该网站上注册服务的方式来发布服务。 其中,seekda1网站是现有的最大的服务注册网站,一共有7663个服务提供商在该网站上注册,据统计,大约有2万多个服务在该网站上进行发布。而且该网站上的服务发布信息比较齐全,提供了服务的可用率,用户标签,提供商,发布服务器等信息。还有其它一些服务注册网站,例如:、。尽管这些网站的数量不及seekda的多,但这些网站上的服务对用户来说,也是有巨大意义的。其服务信息很丰富,需要把网络上的服务抓取和集中管理。 网络信息抓取的主要工具是网络爬虫,网络爬虫是一种

37、按照一定的规则,自动的抓起万维网信息的程序或者脚本。2现有的网络爬虫可以分为以下几种类型3:通用网络爬虫12、聚焦网络爬虫15、增量式网络爬虫4、Deep Web爬虫14。其应用也十分广泛,如:Google搜索引擎的爬虫模块就是一个通用网络爬虫,Google的爬虫通过遍历互联网上的网页,并提取网页的信息,例如关键字、类型、网页超链接等,然后建立网页索引。最后在这些网页信息上建立搜索引擎,向用户提供统一的访问网页的窗口5。聚焦网络爬虫也称为主题爬虫13,大量的应用于互联网中,例如基于聚焦爬虫的手机天气预报系统6,就是应用了聚焦网络爬虫,通过计算页面与天气主题的相关度,抓取网络上与天气相关的页面信

38、息,并把对页面进行索引,并向用户提供统一访问窗口。Web服务有其特定结构,Web服务网络爬虫不仅仅遍历网页,并建立索引,而且在遍历网页过程中,利用网页分析工具解析网页7,把Web服务相关信息抓取下来,如:注册标签、提供商、注册时间、可用率、服务器等。Heritrix9是一个比较灵活、可扩展性强的网络爬虫开源框架,目前,已经有很多应用在该框架上进行开发,例如基于Heritrix的面向电子商务网站的信息抓取,该应用就是在Heritrix网络爬虫开源框架的基础上进行扩展、修改10,并建立特有的抓取策略来抓取网络上的电子商务信息11。2.2 功能说明 本系统包含以下功能: 如果网站提供了详细的服务信息

39、,那么功能如下:1. 存储服务的详细信息 遍历网站结构过程中,如果页面是服务详细信息页面,需要对页面进行解析,把服务的详细信息提取出来,并存入数据库。详细信息包括:服务描述文档WSDL URL、服务提供商、服务注册时间、服务可用率、服务运行服务器、服务标签等。2. 下载WSDL文档提取了Web服务详细信息后,根据Web服务WSDL文档的URL,下载WSDL文档,并把文档内容存放到数据库中。如果网站只提供了Web服务WSDL文档的URL,那么系统在抓取网站过程中,只提取Web服务WSDL的URL,把该URL存入数据库,并下载Web服务的WSDL文档。2.3 运行环境要求程序能够运行在如下环境中:

40、操作系统:Windows XP;运行平台:MyEclipse 6.5以上;java 虚拟机:JVM 1.6.0以上;数据库:MySQL5.1第三章 面向web service的网络爬虫的详细设计3.1 总体架构 本系统采用的是广度优先策略,利用网络爬虫开源框架Heritrix的多线程管理、链接调度器模块,扩展了Heritrix的处理链流程。 Heritrix框架的多线程管理池可以提供50个线程同时进行抓取工作,Frontier调度器负责调度链接,Frontier把新链接加入到待访问队列中,把未访问链接传递给线程。本系统针对两类网站进行了处理链修改及扩展。 针对提供了详细信息的服务网站,裁掉了一

41、些Heritrix原有处理链,只保留了过滤链,提取链,写链,并对三个处理链功能进行重新设定。l 过滤链主要负责根据网站服务分部结构过滤掉不相关的链接。l 提取链主要负责解析页面信息,提取的内容包括:1.新的链接;2.服务详细信息内容;l 写链主要负责把服务信息存储到数据库中,下载WSDL文档。 系统结构图如下:图3-1 抓取详细信息情况下的系统结构图 针对网站只提供了服务WSDL文档的URL,本系统的设计是:处理链保留过滤链、提取链和写链,并对过滤链、提取链和写链功能进行了重新设定。 过滤链主要负责过滤非本网站链接,爬虫抓取的范围局限于主网站,所有其他指向网站的链接都会过滤。提取链主要负责解析

42、网页内容,提取服务WSDL 文档的URL。写链主要负责根据服务WSDL文档的URL下载服务WSDL文档。 系统结构图如下:图3-2 抓取没有详细信息服务的系统结构图3.2 数据库设计本系统的数据库较简单,只有一个表webServiceDetail,在两种情况下,都需要存储服务WSDL文档的URL,在第一种情况下,需要存储服务相关信息,这些相关信息包括:服务提供商、服务注册时间、服务可用率、服务用户描述、服务服务器等,但是在第二种情况下,不需要存储服务相关信息,只存储服务WSDL文档的URL。数据库表定义如下:表3-1 webServiceDetail表 属性名 数据类型 非空自增长默认值wsd

43、lAddressVARCHAR(255) ProviderVARCHAR(30)monitoredSinceVARCHAR(50)serverVARCHAR(50)availabilityVARCHAR(50)descriptionVARCHAR(5000)descriptionByUserVARCHAR(1000)fileAddressVARCHAR(255)datedatatimestateVARCHAR(50)typeBoolean 重要字段说明:wsdlAddress字段为主键,因为每个服务WSDL文档的URL是唯一的。 type字段为true时,表示该服务有相关服务信息,为false

44、时,表示该服务没有相关的服务信息。3.3 程序包设计 本系统主要包括5大模块,分别是:1. 过滤链模块2. 提取链模块3. 写链模块4. 管理访问链接模块5. 管理爬虫多线程模块相对应的程序包设计图如下:图3-3 程序包设计图l my.postprocessor是过滤链模块的程序文件包,主要负责过滤无关的网页链接。l my.extractor是提取链模块的程序文件包,主要负责对各种页面进行信息提取。l my.writer是写链模块的程序文件包,主要负责下载WSDL文档。l org.archive.crawler.frontier是负责管理待访问队列的链接的程序文件包,向线程传递链接。l org

45、.archive.crawler.framework是负责管理爬虫线程的程序文件包,线程获取链接,并访问网页的。3.4 流程设计 针对第一种情况,爬虫抓取过程如图3-4所示:图3-4 第一种情况爬虫抓取流程图1. 向爬虫程序提供一个初始URL,该URL是服务提供商集合页面的URL, 该URL被加入到待访问队列中。2. 爬虫线程管理器TreadPool询问Frontier,检查待访问队列中是否存在链 接,如果存在,TreadPool获得该链接,并分配给一个线程。直到没有空 闲线程都在工作或者待访问队列中没有多余的链接为止。3. 爬虫线程获得链接后,首先经过过滤链的处理,判断链接页面的类型, 并决

46、定如何解析该页面。4. 链接进入了提取链,提取链直到了过滤链对链接页面类型的判断后,对 页面进行不同策略的分析和提取。4.1 如果该页面是服务提供商集合页面,提取链就对该页面进行提供商服务集合页面链接的抓取,并把这些链接加入到待访问队列中。4.2 如果该页面是提供商服务集合页面,提取链就对该页面进行服务详细信息页面链接的抓取,并把这些链接加入到待访问队列中。4.3 如果该页面是服务详细信息页面,提取链就对该页面进行服务详细信息进行抓取。5. 在提取链之后,就进入了写链,如果是服务详细信息页面,在数据库中标 记该页面类型为true,表示该数据库记录是一个提供商服务集合页面相 关的内容。还要把提取

47、链中提取出来的服务信息存入服务详细信息表中, 例如:服务提供商、服务注册时间、服务可用率、服务标签等。 针对第二种情况,爬虫抓取过程如图3-5所示:图3-5 第二种情况爬虫抓取流程图1. 向爬虫程序提供一个初始URL,该URL是待抓取网站的首页URL,该 URL被加入到待访问队列中。2. 爬虫线程管理器 TreadPool询问Frontier,检查待访问队列中是否存在链 接,如果存在,TreadPool获得该链接,并分配给一个线程。直到没有空 闲线程或者待访问队列中没有多余的链接为止。3. 爬虫线程获得链接后,首先经过过滤链的处理,判断链接页面的类型, 并决定如何解析该页面。4. 链接进入了提

48、取链,提取链知道了过滤链对链接页面类型的判断后,对 页面进行不同策略的分析和提取。4.1 如果该页面是本网站的其他页面,提取链就对该页面进行链接抓取,并把这些链接加入到待访问队列中,并跳过写链。4.2 如果该页面是其他网站的页面,提取链就忽略该页面。跳过写链。4.3 如果该页面是服务WSDL文档的URL,提取链就把该链接提交给写链。5. 如果链接能够进入了写链,该链接是服务WSDL文档的链接,所以先下 载该WSDL文档,并在数据库中添加一条记录,并在字段type中标记为 false,说明该服务是没有详细信息的。第四章 面向web service的聚焦网络爬虫的技术实现4.1 分析网站服务分布结

49、构 针对第一种情况,首先要分析网站服务的分布结构。 现有的服务网站中,seekda网站的服务分布是有结构、有规律的。所以我 对seekda网站的具体分析如下: 用户在Seekda网站上有三种方式可以查找服务:1. 网站提供了强大的搜索功能,用户可以在搜索页面输入服务名、服务标 签、服务注册时间等信息进行搜索。2. 网站把同一类标签的服务,以标签的方式显示在首页,用户可以根据标 签来找服务,但是只是服务数量较多的标签会显示。3. 网站按照提供商来进行分类,用户可以查找每一个提供商,然后就查找 到了每个提供商下的每个服务。方式1:爬虫抓取网站所有服务是不可行的,因为爬虫无法列举所有可能的搜索条件。

50、方式2:只有服务数量比较多的标签会显示,对于爬虫来说,无法得到服务数量少的标签。方式3:爬虫可以得到所有的提供商,也就可以得到所有的服务。通过以上分析,得出以下结论: 针对seekda网站的抓取策略是先得到所有的提供商集合,然后进入每个提供商页面,在提供商页面,得到该提供商的所有服务。当爬虫遍历完所有的提供商页面,也就抓取完所有的服务。 网站服务分部结构如图4-1所示:图4-1 网站服务分布结构图要把网站结构应用于爬虫中,就需要知道哪些页面是服务详细信息页面、服务提供商页面、服务提供商集合页面。我主要用了正则表达式来判断这些页面URL。得到网站服务分布结构后,通过分析不同类型页面的URL,用正

51、则表达式来过滤无关网页和判断网页类型。Seekda网站主要包含三种类型的页面。下面就以a2gov.org提供商的QueryService服务为例,说明三种网页的URL的特点。 1. 2. 3. 通过以上的结论,本系统在过滤链中判断页面类型的代码如下: if(url.contains(/providers/alphabetic/)/该页面时提供商集合页面System.out.println(url+ 进入提供商集合页面);/执行操作1condition1(content,curi); else if(url.contains(/?tab=servicelist&p=)/该页面时服务提供商页面Sy

52、stem.out.println(url+ 进入提供商页面);/执行操作2condition2(content,curi); else if(url.contains(/providers/)/该页面是服务详细信息页面System.out.println(url+ 进入服务详细信息页面);/执行操作3condition3(content,curi); 4.2 网页内容提取 经过过滤链后,就进入提取链,在提取链中,需要根据网页类型对网页进行信息提取。 网页信息的代码结构可能很复杂,那么就需要编写一个很复杂的正则表达式才能从代码中提取信息。例如:在页面中,存在一个标签,在开发者编写代码时,会用一些

53、空格来调整内容的长度,根据内容的不同,空格的长度也不同。如果用正则表达式来做,需要考虑很多情况。所以在提取的过程中,主要利用HtmlParser网页解析工具对HTML代码进行解析,该工具能根据HTML代码中的标签属性找到标签的全部内容。 下面分别介绍四种页面的内容提取实现方式。4.2.1 服务提供商集合页面内容提取 分析服务提供商集合页面HTML代码后,可以得知所有的服务提供商页面URL都在一个属性Class = “providerlist”的ul标签中。在这个ul标签中,每个服务提供商页面URL都在一个a标签中。因为class = “providerlist”的ul在这个页面中是唯一的,所以

54、使用HTMLParser比较简单。 程序流程如图4-2所示: 图4-2 服务提供商集合页面内容提取流程图 部分代码如下: 1. 首先新建一个解析类Parser实例,Parser parser = null; try parser = new Parser(content); catch (ParserException e) return;2. 为需要寻找的标签设置FIlter,以下代码就是要找出属性class=providerlist的ul标签。 NodeFilter attributes_filter = new AndFilter(new TagNameFilter(ul),new Ha

55、sAttributeFilter(class, providerlist); NodeList nodelist = null; try nodelist = parser.parse(attributes_filter); catch (ParserException e) e.printStackTrace();return; 3. 得到了class=providerlist的ul标签后,把这部分内容转换为String,并新建一个Filter,目的是为了找到ul标签下所有a标签。 String content1 = nodelist.elementAt(0).toHtml(); parse

56、r.reset(); NodeFilter nodefiter1 = new TagNameFilter(a); try parser = new Parser(content1); catch (ParserException e1) e1.printStackTrace(); NodeList nodelist1 = null; try nodelist1 = parser.parse(nodefiter1); catch (ParserException e) e.printStackTrace();return; 4.得到了所有的a标签集合,这些集合都存储在nodelist1中,循环遍

57、历集合,得到每个服务提供商页面的URL,并把URL通过addLinkFromString()函数加入到爬虫待访问队列中。 for (int i = 0; i nodelist1.size(); i+) LinkTag aNode = (LinkTag) (nodelist1.elementAt(i);String url = aNode.getLink();System.out.println(extractor: condition1: + url);int end = url.indexOf(;);if (end != -1)url = url.substring(0, end);url += /?tab=servicelist&p=0;System.out.println(extractor 抓取了url: + url);addLinkFromString(curi, , url, Link.NAVLINK_HOP);通过以上步骤,就可以得到服务提供商集合页面的所有

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!