web service的网络爬虫设计与实现.doc

上传人:laozhun 文档编号:2390098 上传时间:2023-02-17 格式:DOC 页数:73 大小:1.25MB
返回 下载 相关 举报
web service的网络爬虫设计与实现.doc_第1页
第1页 / 共73页
web service的网络爬虫设计与实现.doc_第2页
第2页 / 共73页
web service的网络爬虫设计与实现.doc_第3页
第3页 / 共73页
web service的网络爬虫设计与实现.doc_第4页
第4页 / 共73页
web service的网络爬虫设计与实现.doc_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《web service的网络爬虫设计与实现.doc》由会员分享,可在线阅读,更多相关《web service的网络爬虫设计与实现.doc(73页珍藏版)》请在三一办公上搜索。

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

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

3、 电脑知识与技术;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, Canada, 1999.4郑力明,易平;Design o

4、f 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 Database, Cairo, Egypt, 2000. 6李文

5、泽;个性化垂直搜索引擎研究;河南大学;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 Wide Web Conference, Toronto

6、, 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. 三、设计(研究)内容和要求(包括设计或研究内容、主要指标 与技术参数,并根据课题性质对学生提出具体要求。) 本系统将要达到以下目标:l 提供给用户一个种子文

7、件,用户可以设置抓取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。随着垂直搜索的蓬勃发展,聚焦网络,也就是主题网络爬虫成为研究的前言,4提出通过深入分析生活类

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

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

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

14、站服务分布结构的分析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框架的提取链时,需要从分析网站结构中得到需要遍历的网页URL。2. 在改写Heritrix框架的写链时,涉及到访问远程服

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

17、到需求信息的位置,并提取信息。分析网站结构过程如下:1. 提供一个包含所有Web service类别的网页的URL,分析该网页,用以上分析页面的方法提取出所有的类别页面的URL,取出一个服务类别页面URL。2. 并对该类别页面进行分析,提取出所有的Web service详细信息页面的URL。3. 对详细信息页面进行分析,提取出所有与Web service相关的信息。4. 把这些相关信息存入到数据库中。5. 提取下一个类别URL。并重复2步骤。 爬虫无限循环执行对页面的分析,直到没有未访问过的URL存在。五、可行性分析:网络上Web服务的飞速增长,例如网站的服务数量达到了2万多个,且服务的种类很

18、多,为本系统提供了非常好的搜索源。并且网站的分布结构十分清晰,有利于我们设计简单有效地搜索策略。同时网络爬虫技术的飞速发展,各种爬虫开源框架的出现,为我们的爬虫系统提供了良好的技术基础。在开源框架的基础上,结合对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. 编程实现与爬虫测试,11.4.10至11.5.1。5. 基于

19、此系统,完成论文,提出自己的主张,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 Web Resource DiscoveryC.In Proceed

20、ings 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 an incremental crawler C. In Pr

21、oceedings 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 Approach to Topic-Specific Web R

22、esource 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. crawler.archive.org14网络爬虫EB/OL.

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

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

25、CT 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 capture and store the services WSDL

26、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 manually analyze which pages of the

27、 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 the page; 3) Downloading the WS

28、DL 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 services through a unified portal , r

29、ather 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;目 录第一章 绪论11.1 问题的背景和意义11.2 研究目标和目的11.3 全文安排2第二章 相关工作和需求分析32.1 相关工作32.2 功能说明42.3 运行环境4第三章 面向web service的网络爬虫详细设计53.1 总体架构53.2 数据库设计6

30、3.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外文资料中文译文致 谢第一章 绪论1.1 问题的背景和意义 随着互联网的飞速发展,应用程序的集成,软件和数据的重用成为互联网发展的障碍。Web 服务的出现有效的解决了以

31、上难题。Web服务允许应用开发者对不同语言,不同平台的应用程序进行集成,允许在程序中调用Web服务。正因为Web服务的有效的解决了以上问题,互联网上的服务发展迅速,服务数量飞速增长。服务数量的增长,使得用户查找服务变得困难。另外,Web服务的发展也产生了另外一个应用模式:组合应用(Mushup),把不同的Web服务进行组合,满足用户需求。现在,互联网上存在许多被动的,集中式的服务注册网站,这类网站上的服务可能大部分来源于网站国家的开发者,服务功能针对某一领域。但是通过主动式的爬取,获得并存储互联网上的服务,对服务进行集中管理,有利于对用户提供统一的访问方式,有利于对互联网服务的分析,提高组合的

32、效率。1.2 研究目的和主要内容为了对互联网服务进行集中管理,需要将互联网上的服务信息存放到数据库中。所以本论文的目的是:通过爬虫抓取,得到互联网上的Web服务信息,并把服务信息存放到数据库中。为了实现该目的,本论文的主要研究内容包括:第一种情况:网站上的服务提供了关于服务的相关信息,那么本系统抓取服务WSDL文档的同时,获取服务的相关信息。针对这种情况,研究内容如下:1.开源框架Heritrix的扩展 因为现有的开源爬虫框架Heritrix提供了网络搜索的基本结构,所以,我会扩展Heritrix框架,使该框架适用于本系统。a. 重新改写Heritrix框架处理流程的过滤链,过滤不需要访问的网

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

34、树。采用数据结构中的树结构来描述网站服务的分布树,扩展后的爬虫得到根节点URL,通过根节点对整棵树进行遍历,抓起网站所有的Web服务。第二种情况:网站上只提供了服务WSDL文档的URL,本系统只抓取服务WSDL文档,不需要分析网站服务分部结构。针对第二种情况,主要的研究内容如下:重新改写Heritrix框架处理流程中的写链,以下载搜索到的WSDL文档。利用HttpClient编写下载WSDL程序。1.3 全文安排 全文共分为六章。第一章 主要介绍本课题研究背景,以及研究意义,明确课题主要研究内容,给出全文的组织结构。第二章 介绍了互联网上的服务的分布情况和相关爬虫技术,并对需求进行分析,包括功

35、能说明和运行环境。第三章 提出了系统的设计和结构,其中包括总体架构、数据库的设计、工程包的设计和详细的流程设计。第四章 在第三章得基础上给出了具体的实现方法,其中主要包括分析网站服务分部结构、页面内容提取、下载WSDL文档以及结果展示。第五章 是对全文工作的总结,指出并分析了现阶段存在的问题并展望了未来的发展前景。 第二章 相关工作和需求分析2.1 相关工作随着Web服务开发者数量的增加,互联网上的Web服务数量以爆炸方式增长。伴随着Web Service的数量的增长,越来越多的网站关注于如何吸引开发者把服务发布在他们的网站中,这些网站采用了服务开发者在该网站上注册服务的方式来发布服务。 其中

36、,seekda1网站是现有的最大的服务注册网站,一共有7663个服务提供商在该网站上注册,据统计,大约有2万多个服务在该网站上进行发布。而且该网站上的服务发布信息比较齐全,提供了服务的可用率,用户标签,提供商,发布服务器等信息。还有其它一些服务注册网站,例如:、。尽管这些网站的数量不及seekda的多,但这些网站上的服务对用户来说,也是有巨大意义的。其服务信息很丰富,需要把网络上的服务抓取和集中管理。 网络信息抓取的主要工具是网络爬虫,网络爬虫是一种按照一定的规则,自动的抓起万维网信息的程序或者脚本。2现有的网络爬虫可以分为以下几种类型3:通用网络爬虫12、聚焦网络爬虫15、增量式网络爬虫4、

37、Deep Web爬虫14。其应用也十分广泛,如:Google搜索引擎的爬虫模块就是一个通用网络爬虫,Google的爬虫通过遍历互联网上的网页,并提取网页的信息,例如关键字、类型、网页超链接等,然后建立网页索引。最后在这些网页信息上建立搜索引擎,向用户提供统一的访问网页的窗口5。聚焦网络爬虫也称为主题爬虫13,大量的应用于互联网中,例如基于聚焦爬虫的手机天气预报系统6,就是应用了聚焦网络爬虫,通过计算页面与天气主题的相关度,抓取网络上与天气相关的页面信息,并把对页面进行索引,并向用户提供统一访问窗口。Web服务有其特定结构,Web服务网络爬虫不仅仅遍历网页,并建立索引,而且在遍历网页过程中,利用

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

39、库。详细信息包括:服务描述文档WSDL URL、服务提供商、服务注册时间、服务可用率、服务运行服务器、服务标签等。2. 下载WSDL文档提取了Web服务详细信息后,根据Web服务WSDL文档的URL,下载WSDL文档,并把文档内容存放到数据库中。如果网站只提供了Web服务WSDL文档的URL,那么系统在抓取网站过程中,只提取Web服务WSDL的URL,把该URL存入数据库,并下载Web服务的WSDL文档。2.3 运行环境要求程序能够运行在如下环境中:操作系统:Windows XP;运行平台:MyEclipse 6.5以上;java 虚拟机:JVM 1.6.0以上;数据库:MySQL5.1第三章

40、 面向web service的网络爬虫的详细设计3.1 总体架构 本系统采用的是广度优先策略,利用网络爬虫开源框架Heritrix的多线程管理、链接调度器模块,扩展了Heritrix的处理链流程。 Heritrix框架的多线程管理池可以提供50个线程同时进行抓取工作,Frontier调度器负责调度链接,Frontier把新链接加入到待访问队列中,把未访问链接传递给线程。本系统针对两类网站进行了处理链修改及扩展。 针对提供了详细信息的服务网站,裁掉了一些Heritrix原有处理链,只保留了过滤链,提取链,写链,并对三个处理链功能进行重新设定。l 过滤链主要负责根据网站服务分部结构过滤掉不相关的链

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

42、息服务的系统结构图3.2 数据库设计本系统的数据库较简单,只有一个表webServiceDetail,在两种情况下,都需要存储服务WSDL文档的URL,在第一种情况下,需要存储服务相关信息,这些相关信息包括:服务提供商、服务注册时间、服务可用率、服务用户描述、服务服务器等,但是在第二种情况下,不需要存储服务相关信息,只存储服务WSDL文档的URL。数据库表定义如下:表3-1 webServiceDetail表 属性名 数据类型 非空自增长默认值wsdlAddressVARCHAR(255) ProviderVARCHAR(30)monitoredSinceVARCHAR(50)serverVA

43、RCHAR(50)availabilityVARCHAR(50)descriptionVARCHAR(5000)descriptionByUserVARCHAR(1000)fileAddressVARCHAR(255)datedatatimestateVARCHAR(50)typeBoolean 重要字段说明:wsdlAddress字段为主键,因为每个服务WSDL文档的URL是唯一的。 type字段为true时,表示该服务有相关服务信息,为false时,表示该服务没有相关的服务信息。3.3 程序包设计 本系统主要包括5大模块,分别是:1. 过滤链模块2. 提取链模块3. 写链模块4. 管理访问

44、链接模块5. 管理爬虫多线程模块相对应的程序包设计图如下:图3-3 程序包设计图l my.postprocessor是过滤链模块的程序文件包,主要负责过滤无关的网页链接。l my.extractor是提取链模块的程序文件包,主要负责对各种页面进行信息提取。l my.writer是写链模块的程序文件包,主要负责下载WSDL文档。l org.archive.crawler.frontier是负责管理待访问队列的链接的程序文件包,向线程传递链接。l org.archive.crawler.framework是负责管理爬虫线程的程序文件包,线程获取链接,并访问网页的。3.4 流程设计 针对第一种情况,爬虫抓取过程如图3-4所示:图3-4 第一种情况爬虫抓取流程图1. 向爬虫程序提供一个初始URL,该URL是服务提供商集合页面的URL, 该URL被加入到待访问队列中。2. 爬虫线程管理器TreadPool询问Frontier,检查待访问队列中是否存在链 接,如果存在,TreadPool获得该链接,并分配给一个线程。直到没有空 闲线程都在工作或者待访问队列中没有多余的链接为止。3. 爬虫线程获

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号