畢業(yè)論文面向web service的網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
畢業(yè)論文面向web service的網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
畢業(yè)論文面向web service的網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
畢業(yè)論文面向web service的網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
畢業(yè)論文面向web service的網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)(論文)說(shuō)明書學(xué) 院 軟件學(xué)院 專 業(yè) 軟件工程 年 級(jí) 07級(jí) 姓 名 梁其烜 指導(dǎo)教師 馮志勇 2011年 6 月 15 日畢業(yè)設(shè)計(jì)(論文)任務(wù)書題目:面向web service的網(wǎng)絡(luò)爬蟲設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名 梁其烜 學(xué)院名稱 軟件學(xué)院 專 業(yè) 軟件工程 學(xué) 號(hào) 3007218123 指導(dǎo)教師 馮志勇 職 稱 教授 1、 原始依據(jù)(包括設(shè)計(jì)或論文的工作基礎(chǔ)、研究條件、應(yīng)用環(huán) 境、工作目的等。) Web Services技術(shù)是一種基于XML語(yǔ)言和標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)的分布式計(jì)算技術(shù)。Web Services技術(shù)是可以改變軟件產(chǎn)業(yè)面貌和軟件應(yīng)用模式的技術(shù)之一。Web Services技術(shù)可

2、以將Internet上的各種信息資源和服務(wù)功能整合在一起,在任何時(shí)間、任何地點(diǎn)向用戶提供優(yōu)質(zhì)的服務(wù)。Web Services技術(shù)還有助于改變企業(yè)對(duì)IT系統(tǒng)的應(yīng)用方式和依賴程度。所以Web Services技術(shù)成為了網(wǎng)絡(luò)上的主流技術(shù)之一,隨之也來(lái)的是大量的開發(fā)人員開始開發(fā)Web服務(wù),隨著時(shí)間的推移,網(wǎng)絡(luò)上出現(xiàn)了大量的Web 服務(wù)。但是,大量的Web服務(wù)分布在網(wǎng)絡(luò)中的各個(gè)地方,給用戶尋找特定功能的服務(wù)造成了不小的麻煩,也給服務(wù)開發(fā)者在原有的服務(wù)上進(jìn)行再次開發(fā)造成了不便。本課題的任務(wù)就是研究如何把網(wǎng)絡(luò)上分散的Web服務(wù)搜集在一起。2、 參考文獻(xiàn)1孫立偉,何國(guó)輝,吳禮發(fā);網(wǎng)絡(luò)爬蟲技術(shù)研究;Comput

3、er Knowledge and Technology 電腦知識(shí)與技術(shù);Vol.4,No.15,May 2010,pp.4112-41152李盛韜,余智華,程學(xué)旗.Web信息采集研究進(jìn)展【J】.計(jì)算機(jī)科學(xué),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;微計(jì)算機(jī)信息,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李文澤;個(gè)性化垂直搜索引擎研究;河南大學(xué);2007-11-07;7曾偉輝,李淼. 深層網(wǎng)絡(luò)爬蟲研究綜述J. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2008. 8周立柱 ,林玲. 聚焦爬蟲技術(shù)研究綜述J.計(jì)算機(jī)應(yīng)用, 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陳汶濱,夏學(xué)梅. 基于聚焦爬蟲的手機(jī)天氣預(yù)報(bào)系統(tǒng)J. 今日科苑. 2009年第2期.11邱哲,符滔滔. 開發(fā)自己的搜索引擎-Lucene 2.0+Heritrix. 人民郵電出版社, 2007-4.12羅剛. 自己動(dòng)手寫網(wǎng)絡(luò)爬蟲. 清華大學(xué)出版社. 2010-10-1;13Heritrix官方網(wǎng)站EB/OL. 14seeda網(wǎng)站EB/OL. 15網(wǎng)絡(luò)爬蟲EB/OL. 三、設(shè)計(jì)(研究)內(nèi)容和要求(包括設(shè)計(jì)或研究?jī)?nèi)容、主要指標(biāo) 與技術(shù)參數(shù),并根據(jù)課題性質(zhì)對(duì)學(xué)生提出具體要求

7、。) 本系統(tǒng)將要達(dá)到以下目標(biāo):l 提供給用戶一個(gè)種子文件,用戶可以設(shè)置抓取Web服務(wù)的網(wǎng)站地址。l 根據(jù)種子地址,搜索種子網(wǎng)站上的Web服務(wù)。l 把搜索到的Web服務(wù)相關(guān)信息存入數(shù)據(jù)庫(kù)中。為了達(dá)到以上目的,本系統(tǒng)將對(duì)Heritrix開源框架進(jìn)行擴(kuò)展,并針對(duì)服務(wù)網(wǎng)站上服務(wù)的特點(diǎn)選擇合適的爬蟲抓取過(guò)程。當(dāng)服務(wù)網(wǎng)站提供了詳細(xì)的服務(wù)信息,且網(wǎng)站服務(wù)的分布結(jié)構(gòu)是有規(guī)律的,那么通過(guò)對(duì)網(wǎng)站結(jié)構(gòu)的分析,可以得到網(wǎng)站中服務(wù)分布的一顆樹,并用形式化語(yǔ)言描述這棵樹,而經(jīng)過(guò)擴(kuò)展之后的爬蟲對(duì)這顆樹進(jìn)行遍歷,就實(shí)現(xiàn)了抓起網(wǎng)絡(luò)上分布的Web Service。當(dāng)服務(wù)網(wǎng)站沒有提供服務(wù)的信息,只提供了WSDL文檔的URL,那么就

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

9、務(wù)是抓取互聯(lián)網(wǎng)上分散的服務(wù),具有重要意義:本系統(tǒng)把互聯(lián)網(wǎng)上的服務(wù)都收集起來(lái),并存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)。用戶或者服務(wù)開發(fā)者就可以在基于該本系統(tǒng)數(shù)據(jù)庫(kù)的搜索引擎中查找到所有的互聯(lián)網(wǎng)上大部分的服務(wù),節(jié)省了在不同網(wǎng)站間查找服務(wù)的時(shí)間。服務(wù)用戶可以快速、準(zhǔn)確的找到符合自己需求的服務(wù),服務(wù)開發(fā)者可以快速得知服務(wù)開發(fā)現(xiàn)狀,避免重復(fù)開發(fā),并且可以利用現(xiàn)有服務(wù)進(jìn)行組合開發(fā)等。2、 國(guó)內(nèi)外發(fā)展?fàn)顩r: 收集互聯(lián)網(wǎng)上的信息的系統(tǒng)被稱為網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁(yè)蜘蛛,網(wǎng)絡(luò)機(jī)器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁(yè)追逐者),它是一種按照一定的規(guī)則,自動(dòng)的抓取萬(wàn)維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻,自動(dòng)索引,模擬

10、程序或者蠕蟲。網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù),大致可以分為以下幾種類型1:通用網(wǎng)絡(luò)爬蟲2、聚焦網(wǎng)絡(luò)爬蟲8、增量式網(wǎng)絡(luò)爬蟲5、Deep Web爬蟲7。通用網(wǎng)絡(luò)爬蟲2又稱全網(wǎng)爬蟲(Scalable Web Crawler),爬行對(duì)象從一些種子 URL 擴(kuò)充到整個(gè) Web ,主要為門戶站點(diǎn)搜索引擎和大型 Web 服務(wù)提供商采集數(shù)據(jù)。通用的網(wǎng)絡(luò)爬蟲大多應(yīng)用于大型門戶網(wǎng)站或類似于google這樣的搜索引擎15。 聚焦網(wǎng)絡(luò)爬蟲(Focused Crawler),又稱主題網(wǎng)絡(luò)爬蟲(Topical Crawler ),是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)頁(yè)面的網(wǎng)絡(luò)爬蟲3。隨著垂直搜索的蓬勃發(fā)展,聚焦網(wǎng)絡(luò)

11、,也就是主題網(wǎng)絡(luò)爬蟲成為研究的前言,4提出通過(guò)深入分析生活類網(wǎng)站網(wǎng)址的樹形結(jié)構(gòu)的架構(gòu),開發(fā)了收集種子頁(yè)面的URL的模擬搜集齊,并基于HTMLParser的信息提取方法,從種子與頁(yè)面中提取出與生活類主題相關(guān)的目標(biāo)URL。增量式網(wǎng)絡(luò)爬蟲(Incremental Web Crawler) 5是指對(duì)已下載網(wǎng)頁(yè)采取增 量式更新和只爬行新產(chǎn)生的或者已經(jīng)發(fā)生變化網(wǎng)頁(yè)的爬蟲,它能夠在一定程度上 保證所爬行的頁(yè)面是盡可能新的頁(yè)面 。本課題研究的是針對(duì)Web服務(wù)的聚焦網(wǎng)絡(luò)爬蟲技術(shù)。因?yàn)榫劢咕W(wǎng)絡(luò)爬蟲技術(shù)能最快的,最準(zhǔn)確的搜索Web服務(wù)信息。本課題并不是重新開發(fā)一個(gè)爬蟲程序,而是在現(xiàn)有爬蟲開源框架的基礎(chǔ)上進(jìn)行擴(kuò)展?,F(xiàn)

12、有的網(wǎng)絡(luò)爬蟲框架有很多,例如:Heritrix、Nutch、Larbin、J-Spider等。Heritrix13是一個(gè)由Java開發(fā)的、開源的Web網(wǎng)絡(luò)信息采集程序。和其他開源的爬蟲程序相比,Heritrix的優(yōu)勢(shì)在于它的擴(kuò)展性,開發(fā)者可以擴(kuò)展它的組件,來(lái)實(shí)現(xiàn)自己的抓取邏輯6。現(xiàn)已有很多應(yīng)用是在Heritrix上開發(fā)的。例如:基于聚焦爬蟲的手機(jī)天氣預(yù)報(bào)系統(tǒng),它是在Heritrix的基本功能上進(jìn)行擴(kuò)展11和修改12。由以上對(duì)爬蟲類型和爬蟲框架的發(fā)展現(xiàn)狀分析,本課題使用Heritrix開源框架,并通過(guò)分析網(wǎng)絡(luò)上分布Web服務(wù)的網(wǎng)站的樹形結(jié)構(gòu)的架構(gòu),實(shí)現(xiàn)針對(duì)Web服務(wù)主題的網(wǎng)絡(luò)爬蟲。3、 目標(biāo)和內(nèi)

13、容:我的研究目標(biāo)是:把互聯(lián)網(wǎng)上廣泛分布的Web Service搜集起來(lái),把相關(guān)信息存入數(shù)據(jù)庫(kù),存在兩種情況:第一種情況:網(wǎng)站上的服務(wù)提供了關(guān)于服務(wù)的相關(guān)信息,那么本系統(tǒng)需要在抓取服務(wù)wsdl文檔的同時(shí),獲取服務(wù)的相關(guān)信息。針對(duì)這種情況,主要的研究?jī)?nèi)容如下:1.開源框架Heritrix的擴(kuò)展 因?yàn)楝F(xiàn)有的開源爬蟲框架Heritrix提供了網(wǎng)絡(luò)搜索的基本結(jié)構(gòu),所以,我會(huì)擴(kuò)展Heritrix框架,使該框架適用于本系統(tǒng)。a. 重新改寫Heritrix框架處理流程中的過(guò)濾鏈,以過(guò)濾不需要訪問(wèn)的網(wǎng)頁(yè)。b. 重新改寫Heritrix框架處理流程中的提取鏈,以提取網(wǎng)頁(yè)包含的信息。c. 重新改寫Heritrix框

14、架處理流程中的寫鏈,以下載搜索到的wsdl文檔。 2.對(duì)網(wǎng)站服務(wù)分布結(jié)構(gòu)的分析a. 對(duì)網(wǎng)站所有Web Service的分類頁(yè)面進(jìn)行分析,分析出含有所有Web Service的種類URl的table表格結(jié)構(gòu)和URL的結(jié)構(gòu)。b. 對(duì)某類別Web Service頁(yè)面進(jìn)行分析,分析出含有所有該類別Web Service的詳細(xì)信息頁(yè)面URL的table表格結(jié)構(gòu)和URL的結(jié)構(gòu)。c. 對(duì)Web Service詳細(xì)信息頁(yè)面進(jìn)行分析,分析出包含所有與該Web Service相關(guān)的信息的table表格結(jié)構(gòu)。通過(guò)對(duì)網(wǎng)站結(jié)構(gòu)的分析,可以得到網(wǎng)站中服務(wù)分布的一顆樹,并用形式化語(yǔ)言描述這棵樹。采用數(shù)據(jù)結(jié)構(gòu)中的樹結(jié)構(gòu)來(lái)描述

15、網(wǎng)站服務(wù)的分布樹,而經(jīng)過(guò)擴(kuò)展之后的爬蟲得到根節(jié)點(diǎn),并通過(guò)根節(jié)點(diǎn)對(duì)整棵樹進(jìn)行遍歷,就實(shí)現(xiàn)了抓起網(wǎng)絡(luò)上分布的Web Service。第二種情況:網(wǎng)站上只提供了服務(wù)的wsdl文檔的url,沒有其它信息,那么本系統(tǒng)就只需要抓取服務(wù)的wsdl文檔,也就不需要分析網(wǎng)站服務(wù)分部結(jié)構(gòu)。針對(duì)第二種情況,主要的研究?jī)?nèi)容如下:重新改寫Heritrix框架處理流程中的寫鏈,以下載搜索到的wsdl文檔。利用httpClient編寫下載wsdl程序。4、 方法和手段:在擴(kuò)展Heritrix框架的過(guò)程中,遇到的問(wèn)題或者使用的插件如下:1. 在改寫Heritrix框架的提取鏈時(shí),需要從分析網(wǎng)站結(jié)構(gòu)中得到需要遍歷的網(wǎng)頁(yè)URL。

16、2. 在改寫Heritrix框架的寫鏈時(shí),涉及到訪問(wèn)遠(yuǎn)程服務(wù)器,下載wsdl文檔。解決該問(wèn)題時(shí),我們用到了HTTPClient插件,該插件能夠?qū)崿F(xiàn)下載遠(yuǎn)程服務(wù)器上的文檔,還可以設(shè)定連接時(shí)間等。3. 由于Heritrix框架提供了完善的UI界面操作,但是沒有提供完整的代碼啟動(dòng)程序,同時(shí)本課題需要把爬蟲啟動(dòng)操作嵌入到其他程序中,所以需要編寫Heritrix的代碼啟動(dòng)模塊。在分析網(wǎng)站結(jié)構(gòu)時(shí),需要用到HTMLParser插件,該插件能夠?qū)崿F(xiàn)對(duì)網(wǎng)頁(yè)的詳細(xì)分析,包括獲取所有網(wǎng)頁(yè)標(biāo)簽信息等功能。利用該插件,我們可以準(zhǔn)確無(wú)誤的獲取服務(wù)的所有詳細(xì)信息。在分析網(wǎng)頁(yè)結(jié)構(gòu)時(shí),需要人工對(duì)網(wǎng)頁(yè)的包含信息的<tabl

17、e>標(biāo)簽進(jìn)行分析,得到該<table>下信息分布的情況,然后使用HTMLParser準(zhǔn)確定位到需求信息的位置,并提取信息。分析網(wǎng)站結(jié)構(gòu)過(guò)程如下:1. 提供一個(gè)包含所有Web service類別的網(wǎng)頁(yè)的URL,分析該網(wǎng)頁(yè),用以上分析頁(yè)面的方法提取出所有的類別頁(yè)面的URL,取出一個(gè)服務(wù)類別頁(yè)面URL。2. 并對(duì)該類別頁(yè)面進(jìn)行分析,提取出所有的Web service詳細(xì)信息頁(yè)面的URL。3. 對(duì)詳細(xì)信息頁(yè)面進(jìn)行分析,提取出所有與Web service相關(guān)的信息。4. 把這些相關(guān)信息存入到數(shù)據(jù)庫(kù)中。5. 提取下一個(gè)類別URL。并重復(fù)2步驟。 爬蟲無(wú)限循環(huán)執(zhí)行對(duì)頁(yè)面的分析,直到?jīng)]有未訪

18、問(wèn)過(guò)的URL存在。五、可行性分析:網(wǎng)絡(luò)上Web服務(wù)的飛速增長(zhǎng),例如網(wǎng)站的服務(wù)數(shù)量達(dá)到了2萬(wàn)多個(gè),且服務(wù)的種類很多,為本系統(tǒng)提供了非常好的搜索源。并且網(wǎng)站的分布結(jié)構(gòu)十分清晰,有利于我們?cè)O(shè)計(jì)簡(jiǎn)單有效地搜索策略。同時(shí)網(wǎng)絡(luò)爬蟲技術(shù)的飛速發(fā)展,各種爬蟲開源框架的出現(xiàn),為我們的爬蟲系統(tǒng)提供了良好的技術(shù)基礎(chǔ)。在開源框架的基礎(chǔ)上,結(jié)合對(duì)Web服務(wù)網(wǎng)站的結(jié)構(gòu)分析,就可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)上分布的Web服務(wù)抓取。4. 進(jìn)度安排:1.學(xué)習(xí)與爬蟲相關(guān)的基本知識(shí),10.11.20至11.1.20。 2.概念抽象,對(duì)于web services 爬蟲的分析和設(shè)計(jì),11.1.20至11.3.10。3.構(gòu)建web services 爬

19、蟲,11.3.10至11.4.10。 4.編程實(shí)現(xiàn)與爬蟲測(cè)試,11.4.10至11.5.1。5.基于此系統(tǒng),完成論文,提出自己的主張,11.5.1至11.6.10。5. 參考文獻(xiàn):1孫立偉,何國(guó)輝,吳禮發(fā);網(wǎng)絡(luò)爬蟲技術(shù)研究;Computer Knowledge and Technology 電腦知識(shí)與技術(shù);Vol.4,No.15,May 2010,pp.4112-41152李盛韜,余智華,程學(xué)旗.Web信息采集研究進(jìn)展【J】.計(jì)算機(jī)科學(xué),2003.3S.Chakrabarti,M.van den Berg and B.Dom.Focused Crawling: A New Approach t

20、o 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;微計(jì)算機(jī)信息,Microcomputer Information;09,June,2009。 5J. Cho, H. Garcia-Molina. The evolution of the web an

21、d implications for an incremental crawler C. In Proceedings of the 26th Inter-national Conference on Very Large Database, Cairo, Egypt, 2000. 6李文澤;個(gè)性化垂直搜索引擎研究;河南大學(xué);2007-11-07;7曾偉輝,李淼. 深層網(wǎng)絡(luò)爬蟲研究綜述J. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2008. 8周立柱 ,林玲. 聚焦爬蟲技術(shù)研究綜述J.計(jì)算機(jī)應(yīng)用, 2005年9月.9S. Chakrabarti, M. van den Berg and B. Dom. Focuse

22、d 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陳汶濱,夏學(xué)梅. 基于聚焦爬蟲的手機(jī)天氣預(yù)報(bào)系統(tǒng)J. 今日科苑. 2009年第2期.11邱哲,符滔滔. 開發(fā)自己的搜索引擎-Lucene 2.0+Heritrix. 人民郵電出版社, 2007-4.12羅剛. 自己動(dòng)手寫網(wǎng)絡(luò)爬蟲. 清華大學(xué)出版社. 2010-10-1;13

23、Heritrix官方網(wǎng)站EB/OL. 14網(wǎng)絡(luò)爬蟲EB/OL. 15Roberston, L. Anecdotes Google search engine J. Annalsof the History of Computing, 2005, Volume 27: 96-97. 選題是否合適: 是 否課題能否實(shí)現(xiàn): 能 不能指導(dǎo)教師(簽字)年月日選題是否合適: 是 否課題能否實(shí)現(xiàn): 能 不能審題小組組長(zhǎng)(簽字)年月日摘 要互聯(lián)網(wǎng)上的服務(wù)數(shù)量增長(zhǎng)快速,網(wǎng)站提供的關(guān)于服務(wù)的信息也各異,導(dǎo)致用戶難以正確、快速的找到合適的服務(wù),為了解決以上問(wèn)題,需要獲取和保存服

24、務(wù)的WSDL的URL和相關(guān)的服務(wù)信息。本文完成了一個(gè)Web服務(wù)信息分析、抓取的網(wǎng)絡(luò)爬蟲,主要研究開發(fā)內(nèi)容有:1)分析服務(wù)網(wǎng)站結(jié)構(gòu):在抓取某個(gè)網(wǎng)站上的服務(wù)前,要人工的分析出該網(wǎng)站哪些頁(yè)面需要抓取,哪些頁(yè)面中哪些信息需要抓??;2)頁(yè)面信息提?。焊鶕?jù)人工分析出的哪些頁(yè)面中哪些信息需要抓取的結(jié)構(gòu),使用HtmlParser工具抓取頁(yè)面中的信息。3)下載WSDL文檔:在抓取到了服務(wù)WSDL的URL后,使用HtmlClient下載WSDL文檔。4)加載服務(wù)信息到數(shù)據(jù)庫(kù):把在頁(yè)面信息提取中得到的關(guān)于服務(wù)的信息存入數(shù)據(jù)庫(kù)中。 通過(guò)對(duì)Web服務(wù)的抓取,用戶可以通過(guò)統(tǒng)一的入口來(lái)訪問(wèn)這些服務(wù),而不用在互聯(lián)網(wǎng)上盲目搜索

25、。為服務(wù)的使用和開發(fā)提供更加便利的平臺(tái)環(huán)境。關(guān)鍵詞:爬蟲;網(wǎng)絡(luò)服務(wù);WSDL;ABSTRACTThe 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, nee

26、ding 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 services on a Web site

27、,needingto 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 tools to capture the

28、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 theinformation about the service into the database.After Crawling the Web service, users can acce

29、ss Web servicesthrough 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;目 錄第一章 緒論11.1 問(wèn)題的背景和意義11.2 研究目標(biāo)和目的11.3 全文安排2第二章 相關(guān)工作和需求分析32.1 相關(guān)工作32.2 功能說(shuō)明42.3 運(yùn)行環(huán)境4第三章

30、 面向web service的網(wǎng)絡(luò)爬蟲詳細(xì)設(shè)計(jì)53.1 總體架構(gòu)53.2 數(shù)據(jù)庫(kù)設(shè)計(jì)63.3 程序包設(shè)計(jì)73.4 流程設(shè)計(jì)8第四章 面向web service的聚焦網(wǎng)絡(luò)爬蟲技術(shù)實(shí)現(xiàn)134.1 分析網(wǎng)站服務(wù)分布結(jié)構(gòu)134.2 網(wǎng)頁(yè)內(nèi)容提取154.2.1 服務(wù)提供商集合頁(yè)面內(nèi)容提取154.2.2 服務(wù)提供商頁(yè)面內(nèi)容提取184.2.3 服務(wù)詳細(xì)信息頁(yè)面內(nèi)容提取204.2.4 頁(yè)面鏈接提取224.3 下載WSDL文檔244.4 結(jié)果展示24第五章 總結(jié)和展望295.1 論文總結(jié)295.2 存在的問(wèn)題和展望29參考文獻(xiàn)30外文資料中文譯文致 謝第1章 緒論1.1 問(wèn)題的背景和意義 隨著互聯(lián)網(wǎng)的飛速發(fā)展,

31、應(yīng)用程序的集成,軟件和數(shù)據(jù)的重用成為互聯(lián)網(wǎng)發(fā)展的障礙。Web 服務(wù)的出現(xiàn)有效的解決了以上難題。Web服務(wù)允許應(yīng)用開發(fā)者對(duì)不同語(yǔ)言,不同平臺(tái)的應(yīng)用程序進(jìn)行集成,允許在程序中調(diào)用Web服務(wù)。正因?yàn)閃eb服務(wù)的有效的解決了以上問(wèn)題,互聯(lián)網(wǎng)上的服務(wù)發(fā)展迅速,服務(wù)數(shù)量飛速增長(zhǎng)。服務(wù)數(shù)量的增長(zhǎng),使得用戶查找服務(wù)變得困難。另外,Web服務(wù)的發(fā)展也產(chǎn)生了另外一個(gè)應(yīng)用模式:組合應(yīng)用(Mushup),把不同的Web服務(wù)進(jìn)行組合,滿足用戶需求?,F(xiàn)在,互聯(lián)網(wǎng)上存在許多被動(dòng)的,集中式的服務(wù)注冊(cè)網(wǎng)站,這類網(wǎng)站上的服務(wù)可能大部分來(lái)源于網(wǎng)站國(guó)家的開發(fā)者,服務(wù)功能針對(duì)某一領(lǐng)域。但是通過(guò)主動(dòng)式的爬取,獲得并存儲(chǔ)互聯(lián)網(wǎng)上的服務(wù),對(duì)

32、服務(wù)進(jìn)行集中管理,有利于對(duì)用戶提供統(tǒng)一的訪問(wèn)方式,有利于對(duì)互聯(lián)網(wǎng)服務(wù)的分析,提高組合的效率。1.2 研究目的和主要內(nèi)容為了對(duì)互聯(lián)網(wǎng)服務(wù)進(jìn)行集中管理,需要將互聯(lián)網(wǎng)上的服務(wù)信息存放到數(shù)據(jù)庫(kù)中。所以本論文的目的是:通過(guò)爬蟲抓取,得到互聯(lián)網(wǎng)上的Web服務(wù)信息,并把服務(wù)信息存放到數(shù)據(jù)庫(kù)中。為了實(shí)現(xiàn)該目的,本論文的主要研究?jī)?nèi)容包括:第一種情況:網(wǎng)站上的服務(wù)提供了關(guān)于服務(wù)的相關(guān)信息,那么本系統(tǒng)抓取服務(wù)WSDL文檔的同時(shí),獲取服務(wù)的相關(guān)信息。針對(duì)這種情況,研究?jī)?nèi)容如下:1.開源框架Heritrix的擴(kuò)展 因?yàn)楝F(xiàn)有的開源爬蟲框架Heritrix提供了網(wǎng)絡(luò)搜索的基本結(jié)構(gòu),所以,我會(huì)擴(kuò)展Heritrix框架,使該框

33、架適用于本系統(tǒng)。a. 重新改寫Heritrix框架處理流程的過(guò)濾鏈,過(guò)濾不需要訪問(wèn)的網(wǎng)頁(yè)。 b. 重新改寫Heritrix框架處理流程的提取鏈,提取網(wǎng)頁(yè)包含的信息。 c. 重新改寫Heritrix框架處理流程的寫鏈,下載搜索到的wsdl文檔。 2.對(duì)網(wǎng)站服務(wù)分布結(jié)構(gòu)的分析 a. 對(duì)網(wǎng)站W(wǎng)eb服務(wù)的分類頁(yè)面進(jìn)行分析,分析出含有所有Web服務(wù)的種類URL的table表格結(jié)構(gòu)和URL的結(jié)構(gòu)。 b. 對(duì)某類別Web Service頁(yè)面進(jìn)行分析,分析出含有所有該類別Web服務(wù)的詳細(xì)信息頁(yè)面URL的table表格結(jié)構(gòu)和URL的結(jié)構(gòu)。 c. 對(duì)Web服務(wù)詳細(xì)信息頁(yè)面進(jìn)行分析,分析出Web服務(wù)信息的table

34、表格結(jié)構(gòu)。通過(guò)對(duì)網(wǎng)站結(jié)構(gòu)的分析,可以得到網(wǎng)站中服務(wù)分布的一顆樹,并用形式化語(yǔ)言描述這棵樹。采用數(shù)據(jù)結(jié)構(gòu)中的樹結(jié)構(gòu)來(lái)描述網(wǎng)站服務(wù)的分布樹,擴(kuò)展后的爬蟲得到根節(jié)點(diǎn)URL,通過(guò)根節(jié)點(diǎn)對(duì)整棵樹進(jìn)行遍歷,抓起網(wǎng)站所有的Web服務(wù)。第二種情況:網(wǎng)站上只提供了服務(wù)WSDL文檔的URL,本系統(tǒng)只抓取服務(wù)WSDL文檔,不需要分析網(wǎng)站服務(wù)分部結(jié)構(gòu)。針對(duì)第二種情況,主要的研究?jī)?nèi)容如下:重新改寫Heritrix框架處理流程中的寫鏈,以下載搜索到的WSDL文檔。利用HttpClient編寫下載WSDL程序。1.3 全文安排全文共分為六章。5、 主要介紹本課題研究背景,以及研究意義,明確課題主要研究?jī)?nèi)容,給出全文的組織結(jié)

35、構(gòu)。6、 介紹了互聯(lián)網(wǎng)上的服務(wù)的分布情況和相關(guān)爬蟲技術(shù),并對(duì)需求進(jìn)行分析,包括功能說(shuō)明和運(yùn)行環(huán)境。7、 提出了系統(tǒng)的設(shè)計(jì)和結(jié)構(gòu),其中包括總體架構(gòu)、數(shù)據(jù)庫(kù)的設(shè)計(jì)、工程包的設(shè)計(jì)和詳細(xì)的流程設(shè)計(jì)。8、 在第三章得基礎(chǔ)上給出了具體的實(shí)現(xiàn)方法,其中主要包括分析網(wǎng)站服務(wù)分部結(jié)構(gòu)、頁(yè)面內(nèi)容提取、下載WSDL文檔以及結(jié)果展示。9、 是對(duì)全文工作的總結(jié),指出并分析了現(xiàn)階段存在的問(wèn)題并展望了未來(lái)的發(fā)展前景。第二章 相關(guān)工作和需求分析2.1 相關(guān)工作隨著Web服務(wù)開發(fā)者數(shù)量的增加,互聯(lián)網(wǎng)上的Web服務(wù)數(shù)量以爆炸方式增長(zhǎng)。伴隨著Web Service的數(shù)量的增長(zhǎng),越來(lái)越多的網(wǎng)站關(guān)注于如何吸引開發(fā)者把服務(wù)發(fā)布在他們的網(wǎng)

36、站中,這些網(wǎng)站采用了服務(wù)開發(fā)者在該網(wǎng)站上注冊(cè)服務(wù)的方式來(lái)發(fā)布服務(wù)。 其中,seekda1網(wǎng)站是現(xiàn)有的最大的服務(wù)注冊(cè)網(wǎng)站,一共有7663個(gè)服務(wù)提供商在該網(wǎng)站上注冊(cè),據(jù)統(tǒng)計(jì),大約有2萬(wàn)多個(gè)服務(wù)在該網(wǎng)站上進(jìn)行發(fā)布。而且該網(wǎng)站上的服務(wù)發(fā)布信息比較齊全,提供了服務(wù)的可用率,用戶標(biāo)簽,提供商,發(fā)布服務(wù)器等信息。還有其它一些服務(wù)注冊(cè)網(wǎng)站,例如:、。盡管這些網(wǎng)站的數(shù)量不及seekda的多,但這些網(wǎng)站上的服務(wù)對(duì)用戶來(lái)說(shuō),也是有巨大意義的。其服務(wù)信息很豐富,需要把網(wǎng)絡(luò)上的服務(wù)抓取和集中管理。 網(wǎng)絡(luò)信息抓取的主要工具是網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)爬蟲是一種按照一定的規(guī)則,自動(dòng)的抓起萬(wàn)維網(wǎng)信息的程序或者腳本。2現(xiàn)有的網(wǎng)絡(luò)爬蟲可以分

37、為以下幾種類型3:通用網(wǎng)絡(luò)爬蟲12、聚焦網(wǎng)絡(luò)爬蟲15、增量式網(wǎng)絡(luò)爬蟲4、Deep Web爬蟲14。其應(yīng)用也十分廣泛,如:Google搜索引擎的爬蟲模塊就是一個(gè)通用網(wǎng)絡(luò)爬蟲,Google的爬蟲通過(guò)遍歷互聯(lián)網(wǎng)上的網(wǎng)頁(yè),并提取網(wǎng)頁(yè)的信息,例如關(guān)鍵字、類型、網(wǎng)頁(yè)超鏈接等,然后建立網(wǎng)頁(yè)索引。最后在這些網(wǎng)頁(yè)信息上建立搜索引擎,向用戶提供統(tǒng)一的訪問(wèn)網(wǎng)頁(yè)的窗口5。聚焦網(wǎng)絡(luò)爬蟲也稱為主題爬蟲13,大量的應(yīng)用于互聯(lián)網(wǎng)中,例如基于聚焦爬蟲的手機(jī)天氣預(yù)報(bào)系統(tǒng)6,就是應(yīng)用了聚焦網(wǎng)絡(luò)爬蟲,通過(guò)計(jì)算頁(yè)面與天氣主題的相關(guān)度,抓取網(wǎng)絡(luò)上與天氣相關(guān)的頁(yè)面信息,并把對(duì)頁(yè)面進(jìn)行索引,并向用戶提供統(tǒng)一訪問(wèn)窗口。Web服務(wù)有其特定結(jié)構(gòu),

38、Web服務(wù)網(wǎng)絡(luò)爬蟲不僅僅遍歷網(wǎng)頁(yè),并建立索引,而且在遍歷網(wǎng)頁(yè)過(guò)程中,利用網(wǎng)頁(yè)分析工具解析網(wǎng)頁(yè)7,把Web服務(wù)相關(guān)信息抓取下來(lái),如:注冊(cè)標(biāo)簽、提供商、注冊(cè)時(shí)間、可用率、服務(wù)器等。Heritrix9是一個(gè)比較靈活、可擴(kuò)展性強(qiáng)的網(wǎng)絡(luò)爬蟲開源框架,目前,已經(jīng)有很多應(yīng)用在該框架上進(jìn)行開發(fā),例如基于Heritrix的面向電子商務(wù)網(wǎng)站的信息抓取,該應(yīng)用就是在Heritrix網(wǎng)絡(luò)爬蟲開源框架的基礎(chǔ)上進(jìn)行擴(kuò)展、修改10,并建立特有的抓取策略來(lái)抓取網(wǎng)絡(luò)上的電子商務(wù)信息11。2.2 功能說(shuō)明 本系統(tǒng)包含以下功能: 如果網(wǎng)站提供了詳細(xì)的服務(wù)信息,那么功能如下:6. 存儲(chǔ)服務(wù)的詳細(xì)信息 遍歷網(wǎng)站結(jié)構(gòu)過(guò)程中,如果頁(yè)面是服

39、務(wù)詳細(xì)信息頁(yè)面,需要對(duì)頁(yè)面進(jìn)行解析,把服務(wù)的詳細(xì)信息提取出來(lái),并存入數(shù)據(jù)庫(kù)。詳細(xì)信息包括:服務(wù)描述文檔WSDL URL、服務(wù)提供商、服務(wù)注冊(cè)時(shí)間、服務(wù)可用率、服務(wù)運(yùn)行服務(wù)器、服務(wù)標(biāo)簽等。7. 下載WSDL文檔提取了Web服務(wù)詳細(xì)信息后,根據(jù)Web服務(wù)WSDL文檔的URL,下載WSDL文檔,并把文檔內(nèi)容存放到數(shù)據(jù)庫(kù)中。如果網(wǎng)站只提供了Web服務(wù)WSDL文檔的URL,那么系統(tǒng)在抓取網(wǎng)站過(guò)程中,只提取Web服務(wù)WSDL的URL,把該URL存入數(shù)據(jù)庫(kù),并下載Web服務(wù)的WSDL文檔。2.3 運(yùn)行環(huán)境要求程序能夠運(yùn)行在如下環(huán)境中:操作系統(tǒng):Windows XP;運(yùn)行平臺(tái):MyEclipse 6.5以上;

40、java 虛擬機(jī):JVM 1.6.0以上;數(shù)據(jù)庫(kù):MySQL5.1第三章 面向web service的網(wǎng)絡(luò)爬蟲的詳細(xì)設(shè)計(jì)3.1 總體架構(gòu) 本系統(tǒng)采用的是廣度優(yōu)先策略,利用網(wǎng)絡(luò)爬蟲開源框架Heritrix的多線程管理、鏈接調(diào)度器模塊,擴(kuò)展了Heritrix的處理鏈流程。 Heritrix框架的多線程管理池可以提供50個(gè)線程同時(shí)進(jìn)行抓取工作,F(xiàn)rontier調(diào)度器負(fù)責(zé)調(diào)度鏈接,F(xiàn)rontier把新鏈接加入到待訪問(wèn)隊(duì)列中,把未訪問(wèn)鏈接傳遞給線程。本系統(tǒng)針對(duì)兩類網(wǎng)站進(jìn)行了處理鏈修改及擴(kuò)展。 針對(duì)提供了詳細(xì)信息的服務(wù)網(wǎng)站,裁掉了一些Heritrix原有處理鏈,只保留了過(guò)濾鏈,提取鏈,寫鏈,并對(duì)三個(gè)處理鏈

41、功能進(jìn)行重新設(shè)定。l 過(guò)濾鏈主要負(fù)責(zé)根據(jù)網(wǎng)站服務(wù)分部結(jié)構(gòu)過(guò)濾掉不相關(guān)的鏈接。l 提取鏈主要負(fù)責(zé)解析頁(yè)面信息,提取的內(nèi)容包括:1.新的鏈接;2.服務(wù)詳細(xì)信息內(nèi)容;3、 寫鏈主要負(fù)責(zé)把服務(wù)信息存儲(chǔ)到數(shù)據(jù)庫(kù)中,下載WSDL文檔。 系統(tǒng)結(jié)構(gòu)圖如下:圖3-1 抓取詳細(xì)信息情況下的系統(tǒng)結(jié)構(gòu)圖 針對(duì)網(wǎng)站只提供了服務(wù)WSDL文檔的URL,本系統(tǒng)的設(shè)計(jì)是:處理鏈保留過(guò)濾鏈、提取鏈和寫鏈,并對(duì)過(guò)濾鏈、提取鏈和寫鏈功能進(jìn)行了重新設(shè)定。 過(guò)濾鏈主要負(fù)責(zé)過(guò)濾非本網(wǎng)站鏈接,爬蟲抓取的范圍局限于主網(wǎng)站,所有其他指向網(wǎng)站的鏈接都會(huì)過(guò)濾。提取鏈主要負(fù)責(zé)解析網(wǎng)頁(yè)內(nèi)容,提取服務(wù)WSDL 文檔的URL。寫鏈主要負(fù)責(zé)根據(jù)服務(wù)WSDL文

42、檔的URL下載服務(wù)WSDL文檔。 系統(tǒng)結(jié)構(gòu)圖如下:圖3-2 抓取沒有詳細(xì)信息服務(wù)的系統(tǒng)結(jié)構(gòu)圖3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)的數(shù)據(jù)庫(kù)較簡(jiǎn)單,只有一個(gè)表webServiceDetail,在兩種情況下,都需要存儲(chǔ)服務(wù)WSDL文檔的URL,在第一種情況下,需要存儲(chǔ)服務(wù)相關(guān)信息,這些相關(guān)信息包括:服務(wù)提供商、服務(wù)注冊(cè)時(shí)間、服務(wù)可用率、服務(wù)用戶描述、服務(wù)服務(wù)器等,但是在第二種情況下,不需要存儲(chǔ)服務(wù)相關(guān)信息,只存儲(chǔ)服務(wù)WSDL文檔的URL。數(shù)據(jù)庫(kù)表定義如下:表3-1 webServiceDetail表 屬性名 數(shù)據(jù)類型 非空自增長(zhǎng)默認(rèn)值wsdlAddressVARCHAR(255)ProviderVARCHAR(

43、30)monitoredSinceVARCHAR(50)serverVARCHAR(50)availabilityVARCHAR(50)descriptionVARCHAR(5000)descriptionByUserVARCHAR(1000)fileAddressVARCHAR(255)datedatatimestateVARCHAR(50)typeBoolean重要字段說(shuō)明:wsdlAddress字段為主鍵,因?yàn)槊總€(gè)服務(wù)WSDL文檔的URL是唯一的。 type字段為true時(shí),表示該服務(wù)有相關(guān)服務(wù)信息,為false時(shí),表示該服務(wù)沒有相關(guān)的服務(wù)信息。3.3 程序包設(shè)計(jì) 本系統(tǒng)主要包括5大模塊

44、,分別是:1. 過(guò)濾鏈模塊2. 提取鏈模塊3. 寫鏈模塊4. 管理訪問(wèn)鏈接模塊5. 管理爬蟲多線程模塊相對(duì)應(yīng)的程序包設(shè)計(jì)圖如下:圖3-3 程序包設(shè)計(jì)圖l my.postprocessor是過(guò)濾鏈模塊的程序文件包,主要負(fù)責(zé)過(guò)濾無(wú)關(guān)的網(wǎng)頁(yè)鏈接。l my.extractor是提取鏈模塊的程序文件包,主要負(fù)責(zé)對(duì)各種頁(yè)面進(jìn)行信息提取。l my.writer是寫鏈模塊的程序文件包,主要負(fù)責(zé)下載WSDL文檔。l org.archive.crawler.frontier是負(fù)責(zé)管理待訪問(wèn)隊(duì)列的鏈接的程序文件包,向線程傳遞鏈接。l org.archive.crawler.framework是負(fù)責(zé)管理爬蟲線程的程序

45、文件包,線程獲取鏈接,并訪問(wèn)網(wǎng)頁(yè)的。3.4 流程設(shè)計(jì) 針對(duì)第一種情況,爬蟲抓取過(guò)程如圖3-4所示:圖3-4 第一種情況爬蟲抓取流程圖l 向爬蟲程序提供一個(gè)初始URL,該URL是服務(wù)提供商集合頁(yè)面的URL, 該URL被加入到待訪問(wèn)隊(duì)列中。l 爬蟲線程管理器TreadPool詢問(wèn)Frontier,檢查待訪問(wèn)隊(duì)列中是否存在鏈 接,如果存在,TreadPool獲得該鏈接,并分配給一個(gè)線程。直到?jīng)]有空 閑線程都在工作或者待訪問(wèn)隊(duì)列中沒有多余的鏈接為止。l 爬蟲線程獲得鏈接后,首先經(jīng)過(guò)過(guò)濾鏈的處理,判斷鏈接頁(yè)面的類型, 并決定如何解析該頁(yè)面。l 鏈接進(jìn)入了提取鏈,提取鏈直到了過(guò)濾鏈對(duì)鏈接頁(yè)面類型的判斷后,

46、對(duì) 頁(yè)面進(jìn)行不同策略的分析和提取。4.1 如果該頁(yè)面是服務(wù)提供商集合頁(yè)面,提取鏈就對(duì)該頁(yè)面進(jìn)行提供商服務(wù)集合頁(yè)面鏈接的抓取,并把這些鏈接加入到待訪問(wèn)隊(duì)列中。4.2 如果該頁(yè)面是提供商服務(wù)集合頁(yè)面,提取鏈就對(duì)該頁(yè)面進(jìn)行服務(wù)詳細(xì)信息頁(yè)面鏈接的抓取,并把這些鏈接加入到待訪問(wèn)隊(duì)列中。4.3 如果該頁(yè)面是服務(wù)詳細(xì)信息頁(yè)面,提取鏈就對(duì)該頁(yè)面進(jìn)行服務(wù)詳細(xì)信息進(jìn)行抓取。l 在提取鏈之后,就進(jìn)入了寫鏈,如果是服務(wù)詳細(xì)信息頁(yè)面,在數(shù)據(jù)庫(kù)中標(biāo) 記該頁(yè)面類型為true,表示該數(shù)據(jù)庫(kù)記錄是一個(gè)提供商服務(wù)集合頁(yè)面相 關(guān)的內(nèi)容。還要把提取鏈中提取出來(lái)的服務(wù)信息存入服務(wù)詳細(xì)信息表中, 例如:服務(wù)提供商、服務(wù)注冊(cè)時(shí)間、服務(wù)可用

47、率、服務(wù)標(biāo)簽等。 針對(duì)第二種情況,爬蟲抓取過(guò)程如圖3-5所示:圖3-5 第二種情況爬蟲抓取流程圖1. 向爬蟲程序提供一個(gè)初始URL,該URL是待抓取網(wǎng)站的首頁(yè)URL,該 URL被加入到待訪問(wèn)隊(duì)列中。2. 爬蟲線程管理器 TreadPool詢問(wèn)Frontier,檢查待訪問(wèn)隊(duì)列中是否存在鏈 接,如果存在,TreadPool獲得該鏈接,并分配給一個(gè)線程。直到?jīng)]有空 閑線程或者待訪問(wèn)隊(duì)列中沒有多余的鏈接為止。3. 爬蟲線程獲得鏈接后,首先經(jīng)過(guò)過(guò)濾鏈的處理,判斷鏈接頁(yè)面的類型, 并決定如何解析該頁(yè)面。4. 鏈接進(jìn)入了提取鏈,提取鏈知道了過(guò)濾鏈對(duì)鏈接頁(yè)面類型的判斷后,對(duì) 頁(yè)面進(jìn)行不同策略的分析和提取。4.

48、1 如果該頁(yè)面是本網(wǎng)站的其他頁(yè)面,提取鏈就對(duì)該頁(yè)面進(jìn)行鏈接抓取,并把這些鏈接加入到待訪問(wèn)隊(duì)列中,并跳過(guò)寫鏈。4.2 如果該頁(yè)面是其他網(wǎng)站的頁(yè)面,提取鏈就忽略該頁(yè)面。跳過(guò)寫鏈。4.3 如果該頁(yè)面是服務(wù)WSDL文檔的URL,提取鏈就把該鏈接提交給寫鏈。5. 如果鏈接能夠進(jìn)入了寫鏈,該鏈接是服務(wù)WSDL文檔的鏈接,所以先下 載該WSDL文檔,并在數(shù)據(jù)庫(kù)中添加一條記錄,并在字段type中標(biāo)記為 false,說(shuō)明該服務(wù)是沒有詳細(xì)信息的。第四章 面向web service的聚焦網(wǎng)絡(luò)爬蟲的技術(shù)實(shí)現(xiàn)4.1 分析網(wǎng)站服務(wù)分布結(jié)構(gòu) 針對(duì)第一種情況,首先要分析網(wǎng)站服務(wù)的分布結(jié)構(gòu)。 現(xiàn)有的服務(wù)網(wǎng)站中,seekda網(wǎng)站

49、的服務(wù)分布是有結(jié)構(gòu)、有規(guī)律的。所以我 對(duì)seekda網(wǎng)站的具體分析如下: 用戶在Seekda網(wǎng)站上有三種方式可以查找服務(wù):l 網(wǎng)站提供了強(qiáng)大的搜索功能,用戶可以在搜索頁(yè)面輸入服務(wù)名、服務(wù)標(biāo) 簽、服務(wù)注冊(cè)時(shí)間等信息進(jìn)行搜索。l 網(wǎng)站把同一類標(biāo)簽的服務(wù),以標(biāo)簽的方式顯示在首頁(yè),用戶可以根據(jù)標(biāo) 簽來(lái)找服務(wù),但是只是服務(wù)數(shù)量較多的標(biāo)簽會(huì)顯示。l 網(wǎng)站按照提供商來(lái)進(jìn)行分類,用戶可以查找每一個(gè)提供商,然后就查找 到了每個(gè)提供商下的每個(gè)服務(wù)。方式1:爬蟲抓取網(wǎng)站所有服務(wù)是不可行的,因?yàn)榕老x無(wú)法列舉所有可能的搜索條件。方式2:只有服務(wù)數(shù)量比較多的標(biāo)簽會(huì)顯示,對(duì)于爬蟲來(lái)說(shuō),無(wú)法得到服務(wù)數(shù)量少的標(biāo)簽。方式3:爬蟲

50、可以得到所有的提供商,也就可以得到所有的服務(wù)。通過(guò)以上分析,得出以下結(jié)論: 針對(duì)seekda網(wǎng)站的抓取策略是先得到所有的提供商集合,然后進(jìn)入每個(gè)提供商頁(yè)面,在提供商頁(yè)面,得到該提供商的所有服務(wù)。當(dāng)爬蟲遍歷完所有的提供商頁(yè)面,也就抓取完所有的服務(wù)。 網(wǎng)站服務(wù)分部結(jié)構(gòu)如圖4-1所示:圖4-1 網(wǎng)站服務(wù)分布結(jié)構(gòu)圖要把網(wǎng)站結(jié)構(gòu)應(yīng)用于爬蟲中,就需要知道哪些頁(yè)面是服務(wù)詳細(xì)信息頁(yè)面、服務(wù)提供商頁(yè)面、服務(wù)提供商集合頁(yè)面。我主要用了正則表達(dá)式來(lái)判斷這些頁(yè)面URL。得到網(wǎng)站服務(wù)分布結(jié)構(gòu)后,通過(guò)分析不同類型頁(yè)面的URL,用正則表達(dá)式來(lái)過(guò)濾無(wú)關(guān)網(wǎng)頁(yè)和判斷網(wǎng)頁(yè)類型。Seekda網(wǎng)站主要包含三種類型的頁(yè)面。下面就以a2g

51、提供商的QueryService服務(wù)為例,說(shuō)明三種網(wǎng)頁(yè)的URL的特點(diǎn)。 1. 2. 3. 通過(guò)以上的結(jié)論,本系統(tǒng)在過(guò)濾鏈中判斷頁(yè)面類型的代碼如下:if(url.contains("/providers/alphabetic/")/該頁(yè)面時(shí)提供商集合頁(yè)面System.out.println(url+" 進(jìn)入提供商集合頁(yè)面");/執(zhí)行操作1condition1(content,curi);elseif(url.contains("/?tab=servicelist&p=")/該頁(yè)面時(shí)服務(wù)提供商頁(yè)面System.out.

52、println(url+" 進(jìn)入提供商頁(yè)面");/執(zhí)行操作2condition2(content,curi);elseif(url.contains("/providers/")/該頁(yè)面是服務(wù)詳細(xì)信息頁(yè)面System.out.println(url+" 進(jìn)入服務(wù)詳細(xì)信息頁(yè)面");/執(zhí)行操作3condition3(content,curi);4.2 網(wǎng)頁(yè)內(nèi)容提取 經(jīng)過(guò)過(guò)濾鏈后,就進(jìn)入提取鏈,在提取鏈中,需要根據(jù)網(wǎng)頁(yè)類型對(duì)網(wǎng)頁(yè)進(jìn)行信息提取。 網(wǎng)頁(yè)信息的代碼結(jié)構(gòu)可能很復(fù)雜,那么就需要編寫一個(gè)很復(fù)雜的正則表達(dá)式才能從代碼中提取信息。例如:在頁(yè)

53、面中,存在一個(gè)標(biāo)簽,在開發(fā)者編寫代碼時(shí),會(huì)用一些空格來(lái)調(diào)整內(nèi)容的長(zhǎng)度,根據(jù)內(nèi)容的不同,空格的長(zhǎng)度也不同。如果用正則表達(dá)式來(lái)做,需要考慮很多情況。所以在提取的過(guò)程中,主要利用HtmlParser網(wǎng)頁(yè)解析工具對(duì)HTML代碼進(jìn)行解析,該工具能根據(jù)HTML代碼中的標(biāo)簽屬性找到標(biāo)簽的全部?jī)?nèi)容。 下面分別介紹四種頁(yè)面的內(nèi)容提取實(shí)現(xiàn)方式。4.2.1 服務(wù)提供商集合頁(yè)面內(nèi)容提取分析服務(wù)提供商集合頁(yè)面HTML代碼后,可以得知所有的服務(wù)提供商頁(yè)面URL都在一個(gè)屬性Class = “providerlist”的ul標(biāo)簽中。在這個(gè)ul標(biāo)簽中,每個(gè)服務(wù)提供商頁(yè)面URL都在一個(gè)a標(biāo)簽中。因?yàn)閏lass = “providerlist”的ul在這個(gè)頁(yè)面中是唯一的,所以使用HTMLParser比較簡(jiǎn)單。 程序流程如圖4-2所示:圖4-2 服務(wù)提供商集合頁(yè)面內(nèi)容提取流程圖 部分代碼如下: 1. 首先新建一個(gè)解析類Parser實(shí)例,Parser parser = null;try parser = new Parser(content); catch (ParserException e) return;2. 為需要尋找的標(biāo)簽設(shè)置FIlter,以下代碼就是要找出屬性class=providerlist的ul標(biāo)簽。

溫馨提示

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

評(píng)論

0/150

提交評(píng)論