【正文】
爬蟲 (Topical Crawler ),是指選擇性地爬行那些與預(yù)先定義好的主題相關(guān)頁面的網(wǎng)絡(luò)爬蟲 [3]。另外一些不常使用的名字還有螞蟻,自動索引,模擬程序或者 蠕蟲 。 本課題的任務(wù)是抓取 互聯(lián)網(wǎng)上分散的服務(wù),具有重要意義:本系統(tǒng)把互聯(lián)網(wǎng)上的服務(wù)都收集起來,并存儲在本地數(shù)據(jù)庫。 為了達(dá)到以上目的,本系統(tǒng)將對 Heritrix 開源框架進(jìn)行擴(kuò)展 ,并針對服務(wù)網(wǎng)站上服務(wù)的特點選擇合適 的爬蟲抓取過程。 [5]J. Cho, H. GarciaMolina. The evolution of the web and implications for an incremental crawler [C]. In Proceedings of the 26th International Conference on Very Large Database, Cairo, Egypt, 2021. [6]李文澤;個性化垂直搜索引擎研究;河南大學(xué); 20211107; [7]曾偉輝,李淼 . 深層網(wǎng)絡(luò)爬蟲研究綜述 [J]. 計算機(jī)系統(tǒng)應(yīng)用 , 2021. [8]周立柱 ,林 玲 . 聚焦爬蟲技術(shù)研究綜述 [J].計算機(jī)應(yīng)用 , 2021 年 9 月 . [9]S. Chakrabarti, M. van den Berg and B. Dom. Focused Crawling: A New Approach to TopicSpecific Web Resource Discovery [C]. In Proceedings of the 8th International World Wide Web Conference, Toronto, Canada, 1999. [10]陳汶濱,夏學(xué)梅 . 基于聚焦爬蟲的手機(jī)天氣預(yù)報系統(tǒng) [J]. 今日科苑 . 2021年第2期 . [11]邱哲,符滔滔 . 開發(fā)自己的搜索引擎 Lucene +Heritrix. 人民郵電出版社 , 20214. [12]羅剛 . 自己動手寫網(wǎng)絡(luò)爬蟲 . 清華大學(xué)出版社 . 2021101; [13]Heritrix 官方網(wǎng)站 [EB/OL]. [14]seeda 網(wǎng)站 [EB/OL]. [15]網(wǎng)絡(luò)爬蟲 [EB/OL]. 三、設(shè)計(研究)內(nèi)容和要求(包括設(shè)計或研究內(nèi)容、主要指標(biāo) 與技術(shù)參數(shù),并根據(jù)課題性質(zhì)對學(xué)生提出具體要求。,May 2021, [2]李盛韜,余智華,程學(xué)旗 .Web 信息采集研究進(jìn)展【 J】 .計算機(jī)科學(xué), 2021. [3], den Berg and Crawling: A New Approach to TopicSpecifi Web Resource Discovery[C].In Proceedings of the 8th International World Wide Web Conference, Toronto, Canada, 1999. [4]鄭力明,易平 。本課題的任務(wù)就是研究如何把網(wǎng)絡(luò)上分散的 Web 服務(wù)搜集在一起。 Web Services 技術(shù)可以將 Inter 上的各種信息資源和服務(wù)功能整合在一起,在任何時間、任何地點向用戶提供優(yōu)質(zhì)的服務(wù) 。 畢業(yè)設(shè)計(論文)說明書 學(xué) 院 軟件學(xué)院 專 業(yè) 軟件工程 年 級 07 級 姓 名 梁其烜 指導(dǎo)教師 馮志勇 2021 年 6 月 15 日 畢業(yè)設(shè)計(論文)任務(wù)書 題目:面向 web service 的網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn) 學(xué)生姓名 梁其烜 學(xué)院名稱 軟件學(xué)院 專 業(yè) 軟件工 程 學(xué) 號 3007218123 指導(dǎo)教師 馮志勇 職 稱 教授 一、 原始依據(jù)(包括設(shè)計或論文的工作基礎(chǔ)、研究條件、應(yīng)用環(huán) 境、工作目的等。 Web Services 技術(shù)還有助于改變企業(yè)對 IT 系統(tǒng)的應(yīng)用方式和依賴程度。 二、 參考文獻(xiàn) [1]孫立偉,何國輝,吳禮發(fā) 。Design of Crawler Based on HTML Parser Information Extraction。) 本系統(tǒng)將要達(dá)到以下目標(biāo): ? 提供給用戶一個種子文件,用戶可以設(shè)置抓取 Web 服務(wù)的網(wǎng)站地址。 當(dāng)服務(wù)網(wǎng)站提供了詳細(xì)的服務(wù)信息,且網(wǎng)站服務(wù)的分布結(jié)構(gòu)是有規(guī)律的,那么通過 對網(wǎng)站結(jié)構(gòu)的分析,可以得到網(wǎng)站中服務(wù)分布的一顆樹,并用形式化語言描述這棵樹,而經(jīng)過擴(kuò)展之后的爬蟲對這顆樹進(jìn)行遍歷,就實現(xiàn)了抓起網(wǎng)絡(luò)上分布的 Web Service。用戶或者服務(wù)開發(fā)者就可以在基于該本系統(tǒng)數(shù)據(jù)庫的搜索引擎中查找到所有的互聯(lián)網(wǎng)上大部分的服務(wù),節(jié)省了在不同網(wǎng)站間查找服務(wù)的時間。 網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實現(xiàn)技術(shù),大致可以分為以下幾種類型 [1]:通用網(wǎng)絡(luò)爬蟲 [2]、聚焦網(wǎng)絡(luò)爬蟲 [8]、增量式網(wǎng)絡(luò)爬蟲 [5]、 Deep Web 爬蟲 [7]。隨著垂直搜索的蓬勃發(fā)展,聚焦網(wǎng)絡(luò),也就是主題網(wǎng)絡(luò)爬蟲成為研究的前言 , [4]提出通過深入分析生活類網(wǎng)站網(wǎng)址的樹形結(jié)構(gòu)的架構(gòu),開發(fā)了收 集種子頁面的 URL 的模擬搜集齊,并基于 HTMLParser 的信息提取方法,從種子與頁面中提取出與生活類主題相關(guān)的目標(biāo) URL。本課題并不是重新開發(fā)一個爬蟲程序,而是在現(xiàn)有爬蟲開源框架的基礎(chǔ)上進(jìn)行擴(kuò)展 。 現(xiàn)已有很多應(yīng)用是在 Heritrix 上開發(fā)的。針對這種情況,主要的研究內(nèi)容如下: Heritrix 的擴(kuò)展 因為現(xiàn)有的開源爬蟲框架 Heritrix 提供了網(wǎng)絡(luò)搜索的基本結(jié)構(gòu),所以,我會擴(kuò)展 Heritrix 框架,使該框架適用于本系統(tǒng)。 a. 對網(wǎng)站所有 Web Service 的分類頁面進(jìn)行分析,分析出含有 所有 Web Service 的種類 URl 的 table 表格結(jié)構(gòu)和 URL 的結(jié)構(gòu)。 采用數(shù)據(jù)結(jié)構(gòu)中的樹結(jié)構(gòu)來描述網(wǎng)站服務(wù)的分布樹,而經(jīng)過擴(kuò)展之后的爬蟲得到根節(jié)點, 并通過根節(jié)點對整棵樹進(jìn)行遍歷,就實現(xiàn)了抓起網(wǎng)絡(luò)上分布的 Web Service。 四、 方法和手段: 在擴(kuò)展 Heritrix 框架的過程中,遇到的問題或者使用的插件如下: 1. 在改寫 Heritrix 框架的提取鏈時,需要從 分析網(wǎng)站結(jié)構(gòu)中得到需要遍歷 的網(wǎng)頁 URL。 在分析網(wǎng)站結(jié)構(gòu)時,需要用到 HTMLParser 插件,該插件能夠?qū)崿F(xiàn)對網(wǎng)頁的詳細(xì)分析,包括獲取所有網(wǎng)頁標(biāo)簽 信息等功能。 2. 并對該類別頁面進(jìn)行分析,提取出所有的 Web service 詳細(xì)信息頁面的URL。并重復(fù) 2 步驟。同時網(wǎng)絡(luò)爬蟲技術(shù)的飛速發(fā)展,各種爬蟲開源框架的出現(xiàn),為我們的爬蟲系統(tǒng)提供了良好的 技術(shù)基礎(chǔ)。 3. 構(gòu)建 web services 爬蟲, 至 。 4)加載服務(wù)信息到數(shù)據(jù)庫:把在頁面信息提取中得到的關(guān)于服務(wù)的信息存入數(shù)據(jù)庫中。s WSDL URL and related service information. This paper pleted a Web Crawler about Web service information analysis and 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 site need to be captured, and which information in which pages needs to be captured。 Web 服務(wù)允許應(yīng)用開發(fā)者對不同語言,不同平臺的應(yīng)用程序進(jìn)行集成,允許在程序中調(diào)用 Web 服務(wù)。 現(xiàn)在,互聯(lián)網(wǎng)上存在許多被動的,集中式的服務(wù)注冊網(wǎng)站,這類網(wǎng)站上的服務(wù)可能大部分來源于網(wǎng)站國家的開發(fā)者,服務(wù)功能針對某一領(lǐng)域。 為了 實現(xiàn)該目的,本論文的主要研究內(nèi)容包括: 第一種情況:網(wǎng)站上的服務(wù)提供了關(guān)于服務(wù)的相關(guān)信息,那么本系統(tǒng)抓取服務(wù) WSDL 文檔的同時,獲取服務(wù)的相關(guān)信息。 c. 重新改 寫 Heritrix 框架處理流程的寫鏈,下載搜索到的 wsdl 文檔。 通過對網(wǎng)站結(jié)構(gòu)的分析,可以得到網(wǎng)站中服務(wù)分布的一顆樹,并用形式化 語言描述這棵樹。利用 HttpClient 編寫下載 WSDL 程序。 第三章 提出了系統(tǒng)的設(shè)計和結(jié)構(gòu),其中包括總體架構(gòu)、數(shù)據(jù)庫的設(shè)計、工程包的設(shè)計和詳細(xì)的流程設(shè)計。伴隨著 Web Service 的數(shù)量的增長,越來越多的網(wǎng)站關(guān)注于如何吸引開發(fā)者把服務(wù)發(fā)布在他們的網(wǎng)站中,這些網(wǎng)站采用了服務(wù)開發(fā)者在該網(wǎng)站上注冊服務(wù)的方式來發(fā)布服務(wù)。盡管這些網(wǎng)站的數(shù)量不及 seekda 的多,但這些網(wǎng)站上的服務(wù)對用戶來說,也是有巨大意義的。其應(yīng)用也十分廣泛,如 :Google 搜索引擎的爬蟲模塊就是一個通用網(wǎng)絡(luò)爬蟲,Google 的爬蟲通過 遍歷互聯(lián)網(wǎng)上的網(wǎng)頁,并提取網(wǎng)頁的信息,例如關(guān)鍵字、類型、網(wǎng)頁超鏈接等,然后建立網(wǎng)頁索引。 Heritrix[9]是一個比較靈活、可擴(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],并建立特有的抓取策略來抓取網(wǎng)絡(luò)上的電子商務(wù)信息 [11]。 如果網(wǎng)站只提供了 Web 服務(wù) WSDL 文檔的 URL,那么系統(tǒng)在抓取網(wǎng)站過程中,只提取 Web 服務(wù) WSDL 的 URL,把該 URL 存入數(shù)據(jù)庫,并下載 Web 服務(wù)的 WSDL 文檔。 針對提供了詳細(xì)信息的服務(wù)網(wǎng)站,裁掉了一些 Heritrix 原有處理鏈,只保留了過濾鏈,提取鏈,寫鏈,并對三個處理鏈功能進(jìn)行重新設(shè)定。 過濾鏈主要負(fù)責(zé)過濾非本網(wǎng)站鏈接,爬蟲抓取的范圍局限于主網(wǎng)站,所有其他指向網(wǎng)站的鏈接都會過濾。數(shù)據(jù)庫表定義如下: 天津大學(xué) 2021屆 本科生畢業(yè)設(shè)計(論文) 7 表 31 webServiceDetail 表 屬性名 數(shù)據(jù)類型 非空 自增長 默認(rèn)值 wsdlAddress VARCHAR(255) √ Provider VARCHAR(30) monitoredSince VARCHAR(50) server VARCHAR(50) availability VARCHAR(50) description VARCHAR(5000) descriptionByUser VARCHAR(1000) fileAddress VARCHAR(255) date datatime state VARCHAR(50) type Boolean √ 重要字段說明: wsdlAddress 字段為主鍵,因為每個服務(wù) WSDL 文檔的 URL 是唯一的。 ? 是寫鏈模塊的程序文件包,主要負(fù)責(zé)下載 WSDL 文檔。 2. 爬蟲線程管理器 TreadPool 詢問 Frontier,檢查待訪問隊列中是否存在鏈 接,如果存在, TreadPool 獲得該鏈接,并分配給一個線程。 如果該頁面是服務(wù)提供商集合頁面,提取鏈就對該頁面進(jìn)行提供商 服務(wù)集合頁面鏈接的抓取,并把這些鏈接加入到待訪問隊列中。還要把提取鏈中提取出來的服務(wù)信息存入服務(wù)詳細(xì)信息表中, 例如:服務(wù)提供商、服務(wù)注冊時間、 服務(wù)可用率、服務(wù)標(biāo)簽等。 3. 爬蟲線程獲得鏈接后,首先經(jīng)過過濾鏈的處理,判斷鏈接頁面的類型, 并決定如何解析該頁面。跳過寫鏈。 現(xiàn)有的服務(wù)網(wǎng)站中, seekda 網(wǎng)站的服務(wù)分布是有結(jié)構(gòu)、有規(guī)律的。 方式 1:爬蟲抓取網(wǎng)站所有服務(wù)是不可行的,因為爬蟲無法列舉所有可能的搜索條件。當(dāng)爬蟲遍歷完所有的提供商頁面,也就抓取完所有的服務(wù)。 Seekda 網(wǎng)站主要包含三種類型的頁面。p=是相同的部分, 是提供商名,根據(jù)這個規(guī)律,我們得出結(jié)論:所有以 ....../?tab=servicelistamp。 //執(zhí)行操作 1 condition1(content,curi)。 }else if((/providers/)){ //該頁面是服務(wù)詳細(xì)信息頁面 (url+ 進(jìn)入 服務(wù)詳細(xì)信息頁面 )。例如:在頁面中,