畢業設計論文85505_第1頁
畢業設計論文85505_第2頁
畢業設計論文85505_第3頁
畢業設計論文85505_第4頁
畢業設計論文85505_第5頁
已閱讀5頁,還剩69頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、畢業設計(論文)說明書學 院 軟件學院 專 業 軟件工程 年 級 07級 姓 名 梁其烜 指導教師 馮志勇 2011年 6 月 15 日畢業設計(論文)任務書題目:面向web service的網絡爬蟲設計與實現學生姓名 梁其烜 學院名稱 軟件學院 專 業 軟件工程 學 號 3007218123 指導教師 馮志勇 職 稱 教授 1、 原始依據(包括設計或論文的工作基礎、研究條件、應用環 境、工作目的等。) Web Services技術是一種基于XML語言和標準的網絡協議實現的分布式計算技術。Web Services技術是可以改變軟件產業面貌和軟件應用模式的技術之一。Web Services技術可

2、以將Internet上的各種信息資源和服務功能整合在一起,在任何時間、任何地點向用戶提供優質的服務。Web Services技術還有助于改變企業對IT系統的應用方式和依賴程度。所以Web Services技術成為了網絡上的主流技術之一,隨之也來的是大量的開發人員開始開發Web服務,隨著時間的推移,網絡上出現了大量的Web 服務。但是,大量的Web服務分布在網絡中的各個地方,給用戶尋找特定功能的服務造成了不小的麻煩,也給服務開發者在原有的服務上進行再次開發造成了不便。本課題的任務就是研究如何把網絡上分散的Web服務搜集在一起。2、 參考文獻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. 14seeda網站EB/OL. 15網絡爬蟲EB/OL. 三、設計(研究)內容和要求(包括設計或研究內容、主要指標 與技術參數,并根據課題性質對學生提出具體要求

7、。) 本系統將要達到以下目標:l 提供給用戶一個種子文件,用戶可以設置抓取Web服務的網站地址。l 根據種子地址,搜索種子網站上的Web服務。l 把搜索到的Web服務相關信息存入數據庫中。為了達到以上目的,本系統將對Heritrix開源框架進行擴展,并針對服務網站上服務的特點選擇合適的爬蟲抓取過程。當服務網站提供了詳細的服務信息,且網站服務的分布結構是有規律的,那么通過對網站結構的分析,可以得到網站中服務分布的一顆樹,并用形式化語言描述這棵樹,而經過擴展之后的爬蟲對這顆樹進行遍歷,就實現了抓起網絡上分布的Web Service。當服務網站沒有提供服務的信息,只提供了WSDL文檔的URL,那么就

8、遍歷網站中所有的本網站的網頁,并判斷網頁中的鏈接是否是WSDL文檔的URL,如果是,就下載該WSDL文檔。 指導教師(簽字)年 月 日審題小組組長(簽字)年 月 日天津大學本科生畢業設計(論文)開題報告課題名稱Web Services 網絡爬蟲學院名稱軟件學院專業名稱軟件工程學生姓名梁其烜指導教師馮志勇1、 課題來源及意義: 互聯網上的服務數量正快速的增長,分布在不同的網站上,導致服務的用戶需要在不同的網站之間尋找一個或者多個符合自己需求的服務,對于服務開發者來說,他們無法快速、準確的得知現有的服務開發現狀,服務開發者無法重用現有的服務,重復開發已有的服務,導致一個糟糕的服務開發環境。 本課題

9、的任務是抓取互聯網上分散的服務,具有重要意義:本系統把互聯網上的服務都收集起來,并存儲在本地數據庫。用戶或者服務開發者就可以在基于該本系統數據庫的搜索引擎中查找到所有的互聯網上大部分的服務,節省了在不同網站間查找服務的時間。服務用戶可以快速、準確的找到符合自己需求的服務,服務開發者可以快速得知服務開發現狀,避免重復開發,并且可以利用現有服務進行組合開發等。2、 國內外發展狀況: 收集互聯網上的信息的系統被稱為網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在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?,F已有很多應用是在Heritrix上開發的。例如:基于聚焦爬蟲的手機天氣預報系統,它是在Heritrix的基本功能上進行擴展11和修改12。 由以上對爬蟲類型和爬蟲框架的發展現狀分析,本課題使用Heritrix開源框架,并通過分析網絡上分布Web服務的網站的樹形結構的架構,實現針對Web服務主題的網絡爬蟲。3、 目

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程序。4、 方法和手段:在擴展Heritrix框架的過程中,遇到的問題或者使用的插件如下:1. 在改寫Heritrix框架的提取鏈時,需要從分析網站結構中得到需要遍歷的網頁U

16、RL。2. 在改寫Heritrix框架的寫鏈時,涉及到訪問遠程服務器,下載wsdl文檔。解決該問題時,我們用到了HTTPClient插件,該插件能夠實現下載遠程服務器上的文檔,還可以設定連接時間等。3. 由于Heritrix框架提供了完善的UI界面操作,但是沒有提供完整的代碼啟動程序,同時本課題需要把爬蟲啟動操作嵌入到其他程序中,所以需要編寫Heritrix的代碼啟動模塊。在分析網站結構時,需要用到HTMLParser插件,該插件能夠實現對網頁的詳細分析,包括獲取所有網頁標簽信息等功能。利用該插件,我們可以準確無誤的獲取服務的所有詳細信息。在分析網頁結構時,需要人工對網頁的包含信息的<t

17、able>標簽進行分析,得到該<table>下信息分布的情況,然后使用HTMLParser準確定位到需求信息的位置,并提取信息。分析網站結構過程如下:1. 提供一個包含所有Web service類別的網頁的URL,分析該網頁,用以上分析頁面的方法提取出所有的類別頁面的URL,取出一個服務類別頁面URL。2. 并對該類別頁面進行分析,提取出所有的Web service詳細信息頁面的URL。3. 對詳細信息頁面進行分析,提取出所有與Web service相關的信息。4. 把這些相關信息存入到數據庫中。5. 提取下一個類別URL。并重復2步驟。 爬蟲無限循環執行對頁面的分析,直到沒

18、有未訪問過的URL存在。五、可行性分析:網絡上Web服務的飛速增長,例如網站的服務數量達到了2萬多個,且服務的種類很多,為本系統提供了非常好的搜索源。并且網站的分布結構十分清晰,有利于我們設計簡單有效地搜索策略。同時網絡爬蟲技術的飛速發展,各種爬蟲開源框架的出現,為我們的爬蟲系統提供了良好的技術基礎。在開源框架的基礎上,結合對Web服務網站的結構分析,就可以實現對網絡上分布的Web服務抓取。6、 進度安排:1. 學習與爬蟲相關的基本知識,10.11.20至11.1.20。 2. 概念抽象,對于web services 爬蟲的分析和設計,11.1.20至11.3.10。3. 構建web serv

19、ices 爬蟲,11.3.10至11.4.10。 4. 編程實現與爬蟲測試,11.4.10至11.5.1。5. 基于此系統,完成論文,提出自己的主張,11.5.1至11.6.10。7、 參考文獻: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 Ap

20、proach to Topic-Specifi Web 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 th

21、e web and implications for 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

22、. Focused Crawling: A New 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

23、-10-1;13Heritrix官方網站EB/OL. 14網絡爬蟲EB/OL. 15Roberston, L. Anecdotes Google search engine J. Annals of the History of Computing, 2005, Volume 27: 96-97. 選題是否合適: 是 否課題能否實現: 能 不能指導教師(簽字)年 月 日選題是否合適: 是 否課題能否實現: 能 不能審題小組組長(簽字)年 月 日摘 要互聯網上的服務數量增長快速,網站提供的關于服務的信息也各異,導致用戶難以正確、快速的找到合適的服務,為了解決

24、以上問題,需要獲取和保存服務的WSDL的URL和相關的服務信息。本文完成了一個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

26、 problems, needing to capture and store the service's 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 service

27、s on a Web site, needing to manually 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 tool

28、s to capture the information in 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 serv

29、ice, users can access Web services 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第二章

30、相關工作和需求分析32.1 相關工作32.2 功能說明42.3 運行環境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外

31、文資料中文譯文致 謝1天津大學2011屆本科生畢業設計(論文)第1章 緒論1.1 問題的背景和意義 隨著互聯網的飛速發展,應用程序的集成,軟件和數據的重用成為互聯網發展的障礙。Web 服務的出現有效的解決了以上難題。Web服務允許應用開發者對不同語言,不同平臺的應用程序進行集成,允許在程序中調用Web服務。正因為Web服務的有效的解決了以上問題,互聯網上的服務發展迅速,服務數量飛速增長。服務數量的增長,使得用戶查找服務變得困難。另外,Web服務的發展也產生了另外一個應用模式:組合應用(Mushup),把不同的Web服務進行組合,滿足用戶需求。現在,互聯網上存在許多被動的,集中式的服務注冊網站,

32、這類網站上的服務可能大部分來源于網站國家的開發者,服務功能針對某一領域。但是通過主動式的爬取,獲得并存儲互聯網上的服務,對服務進行集中管理,有利于對用戶提供統一的訪問方式,有利于對互聯網服務的分析,提高組合的效率。1.2 研究目的和主要內容為了對互聯網服務進行集中管理,需要將互聯網上的服務信息存放到數據庫中。所以本論文的目的是:通過爬蟲抓取,得到互聯網上的Web服務信息,并把服務信息存放到數據庫中。為了實現該目的,本論文的主要研究內容包括:第一種情況:網站上的服務提供了關于服務的相關信息,那么本系統抓取服務WSDL文檔的同時,獲取服務的相關信息。針對這種情況,研究內容如下:1.開源框架Heri

33、trix的擴展 因為現有的開源爬蟲框架Heritrix提供了網絡搜索的基本結構,所以,我會擴展Heritrix框架,使該框架適用于本系統。a. 重新改寫Heritrix框架處理流程的過濾鏈,過濾不需要訪問的網頁。 b. 重新改寫Heritrix框架處理流程的提取鏈,提取網頁包含的信息。 c. 重新改寫Heritrix框架處理流程的寫鏈,下載搜索到的wsdl文檔。 2.對網站服務分布結構的分析 a. 對網站Web服務的分類頁面進行分析,分析出含有所有Web服務的種類URL的table表格結構和URL的結構。 b. 對某類別Web Service頁面進行分析,分析出含有所有該類別Web服務的詳細信

34、息頁面URL的table表格結構和URL的結構。 c. 對Web服務詳細信息頁面進行分析,分析出Web服務信息的table表格結構。通過對網站結構的分析,可以得到網站中服務分布的一顆樹,并用形式化語言描述這棵樹。采用數據結構中的樹結構來描述網站服務的分布樹,擴展后的爬蟲得到根節點URL,通過根節點對整棵樹進行遍歷,抓起網站所有的Web服務。第二種情況:網站上只提供了服務WSDL文檔的URL,本系統只抓取服務WSDL文檔,不需要分析網站服務分部結構。針對第二種情況,主要的研究內容如下:重新改寫Heritrix框架處理流程中的寫鏈,以下載搜索到的WSDL文檔。利用HttpClient編寫下載WSD

35、L程序。1.3 全文安排 全文共分為六章。第1章 主要介紹本課題研究背景,以及研究意義,明確課題主要研究內容,給出全文的組織結構。第2章 介紹了互聯網上的服務的分布情況和相關爬蟲技術,并對需求進行分析,包括功能說明和運行環境。第3章 提出了系統的設計和結構,其中包括總體架構、數據庫的設計、工程包的設計和詳細的流程設計。第4章 在第三章得基礎上給出了具體的實現方法,其中主要包括分析網站服務分部結構、頁面內容提取、下載WSDL文檔以及結果展示。第5章 是對全文工作的總結,指出并分析了現階段存在的問題并展望了未來的發展前景。 第二章 相關工作和需求分析2.1 相關工作隨著Web服務開發者數量的增加,

36、互聯網上的Web服務數量以爆炸方式增長。伴隨著Web Service的數量的增長,越來越多的網站關注于如何吸引開發者把服務發布在他們的網站中,這些網站采用了服務開發者在該網站上注冊服務的方式來發布服務。 其中,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服務

40、的WSDL文檔。2.3 運行環境要求程序能夠運行在如下環境中:操作系統: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 webServ

43、iceDetail表 屬性名 數據類型 非空自增長默認值wsdlAddressVARCHAR(255) ProviderVARCHAR(30)monitoredSinceVARCHAR(50)serverVARCHAR(50)availabilityVARCHAR(50)descriptionVARCHAR(5000)descriptionByUserVARCHAR(1000)fileAddressVARCHAR(255)datedatatimestateVARCHAR(50)typeBoolean 重要字段說明:wsdlAddress字段為主鍵,因為每個服務WSDL文檔的URL是唯一的。 t

44、ype字段為true時,表示該服務有相關服務信息,為false時,表示該服務沒有相關的服務信息。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是負

45、責管理待訪問隊列的鏈接的程序文件包,向線程傳遞鏈接。l org.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. 爬蟲線程獲得鏈接后,首先經過過濾鏈的處理,

48、判斷鏈接頁面的類型, 并決定如何解析該頁面。4. 鏈接進入了提取鏈,提取鏈知道了過濾鏈對鏈接頁面類型的判斷后,對 頁面進行不同策略的分析和提取。4.1 如果該頁面是本網站的其他頁面,提取鏈就對該頁面進行鏈接抓取,并把這些鏈接加入到待訪問隊列中,并跳過寫鏈。4.2 如果該頁面是其他網站的頁面,提取鏈就忽略該頁面。跳過寫鏈。4.3 如果該頁面是服務WSDL文檔的URL,提取鏈就把該鏈接提交給寫鏈。5. 如果鏈接能夠進入了寫鏈,該鏈接是服務WSDL文檔的鏈接,所以先下 載該WSDL文檔,并在數據庫中添加一條記錄,并在字段type中標記為 false,說明該服務是沒有詳細信息的。第四章 面向web s

49、ervice的聚焦網絡爬蟲的技術實現4.1 分析網站服務分布結構 針對第一種情況,首先要分析網站服務的分布結構。 現有的服務網站中,seekda網站的服務分布是有結構、有規律的。所以我 對seekda網站的具體分析如下: 用戶在Seekda網站上有三種方式可以查找服務:1. 網站提供了強大的搜索功能,用戶可以在搜索頁面輸入服務名、服務標 簽、服務注冊時間等信息進行搜索。2. 網站把同一類標簽的服務,以標簽的方式顯示在首頁,用戶可以根據標 簽來找服務,但是只是服務數量較多的標簽會顯示。3. 網站按照提供商來進行分類,用戶可以查找每一個提供商,然后就查找 到了每個提供商下的每個服務。方式1:爬蟲抓

50、取網站所有服務是不可行的,因為爬蟲無法列舉所有可能的搜索條件。方式2:只有服務數量比較多的標簽會顯示,對于爬蟲來說,無法得到服務數量少的標簽。方式3:爬蟲可以得到所有的提供商,也就可以得到所有的服務。通過以上分析,得出以下結論: 針對seekda網站的抓取策略是先得到所有的提供商集合,然后進入每個提供商頁面,在提供商頁面,得到該提供商的所有服務。當爬蟲遍歷完所有的提供商頁面,也就抓取完所有的服務。 網站服務分部結構如圖4-1所示:圖4-1 網站服務分布結構圖要把網站結構應用于爬蟲中,就需要知道哪些頁面是服務詳細信息頁面、服務提供商頁面、服務提供商集合頁面。我主要用了正則表達式來判斷這些頁面UR

51、L。得到網站服務分布結構后,通過分析不同類型頁面的URL,用正則表達式來過濾無關網頁和判斷網頁類型。Seekda網站主要包含三種類型的頁面。下面就以提供商的QueryService服務為例,說明三種網頁的URL的特點。 1. 2. 3. 通過以上的結論,本系統在過濾鏈中判斷頁面類型的代碼如下: if(url.contains("/providers/alphabetic/")/該頁面時提供商集合頁面System.out.println(url+" 進入提供商集合頁面");/執行操作1condition1(content,curi); e

52、lse if(url.contains("/?tab=servicelist&p=")/該頁面時服務提供商頁面System.out.println(url+" 進入提供商頁面");/執行操作2condition2(content,curi); else if(url.contains("/providers/")/該頁面是服務詳細信息頁面System.out.println(url+" 進入服務詳細信息頁面");/執行操作3condition3(content,curi); 4.2 網頁內容提取 經過過濾鏈后,就進入提取鏈,在提取鏈中,需要根據網頁類型對網頁進行信息提取。 網頁信息的代碼結構可能很復雜,那么就需要編寫一個很復雜的正則表達式才能從代碼中提取信息。例如:在頁面中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論