日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是网络爬虫

發(fā)布時(shí)間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是网络爬虫 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 百度首頁
  • |
  • 登錄注冊(cè)

新聞網(wǎng)頁貼吧知道MP3圖片視頻百科文庫(kù)

幫助設(shè)置

網(wǎng)絡(luò)爬蟲

求助編輯百科名片

網(wǎng)絡(luò)爬蟲

網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動(dòng)的抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻,自動(dòng)索引,模擬程序或者蠕蟲。

目錄

概述
爬蟲技術(shù)研究綜述
網(wǎng)頁搜索策略
網(wǎng)頁分析算法
補(bǔ)充 展開

編輯本段概述

  引言   隨著網(wǎng)絡(luò)的迅速發(fā)展,萬維網(wǎng)成為大量信息的載體,如何有效地提取并利用這些信息成為一個(gè)巨大的挑戰(zhàn)。搜索引擎(Search Engine),例如傳統(tǒng)的通用搜索引擎AltaVista,Yahoo!和Google等,作為一個(gè)輔助人們檢索信息的工具成為用戶訪問萬維網(wǎng)的入口和指南。但是,這些通用性搜索引擎也存在著一定的局限性,如:   (1) 不同領(lǐng)域、不同背景的用戶往往具有不同的檢索目的和需求,通用搜索引擎所返回的結(jié)果包含大量用戶不關(guān)心的網(wǎng)頁。   (2) 通用搜索引擎的目標(biāo)是盡可能大的網(wǎng)絡(luò)覆蓋率,有限的搜索引擎服務(wù)器資源與無限的網(wǎng)絡(luò)數(shù)據(jù)資源之間的矛盾將進(jìn)一步加深。   (3) 萬維網(wǎng)數(shù)據(jù)形式的豐富和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,圖片、數(shù)據(jù)庫(kù)、音頻/視頻多媒體等不同數(shù)據(jù)大量出現(xiàn),通用搜索引擎往往對(duì)這些信息含量密集且具有一定結(jié)構(gòu)的數(shù)據(jù)無能為力,不能很好地發(fā)現(xiàn)和獲取。   (4) 通用搜索引擎大多提供基于關(guān)鍵字的檢索,難以支持根據(jù)語義信息提出的查詢。   為了解決上述問題,定向抓取相關(guān)網(wǎng)頁資源的聚焦爬蟲應(yīng)運(yùn)而生。聚焦爬蟲是一個(gè)自動(dòng)下載網(wǎng)頁的程序,它根據(jù)既定的抓取目標(biāo),有選擇的訪問萬維網(wǎng)上的網(wǎng)頁與相關(guān)的鏈接,獲取所需要的信息。與通用爬蟲(general?purpose web crawler)不同,聚焦爬蟲并不追求大的覆蓋,而將目標(biāo)定為抓取與某一特定主題內(nèi)容相關(guān)的網(wǎng)頁,為面向主題的用戶查詢準(zhǔn)備數(shù)據(jù)資源。   1 聚焦爬蟲工作原理以及關(guān)鍵技術(shù)概述   網(wǎng)絡(luò)爬蟲是一個(gè)自動(dòng)提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。傳統(tǒng)爬蟲從一個(gè)或若干初始網(wǎng)頁的URL開始,獲得初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面上抽取新的URL放入隊(duì)列,直到滿足系統(tǒng)的一定停止條件。聚焦爬蟲的工作流程較為復(fù)雜,需要根據(jù)一定的網(wǎng)頁分析算法過濾與主題無關(guān)的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊(duì)列。然后,它將根據(jù)一定的搜索策略從隊(duì)列中選擇下一步要抓取的網(wǎng)頁URL,并重復(fù)上述過程,直到達(dá)到系統(tǒng)的某一條件時(shí)停止。另外,所有被爬蟲抓取的網(wǎng)頁將會(huì)被系統(tǒng)存貯,進(jìn)行一定的分析、過濾,并建立索引,以便之后的查詢和檢索;對(duì)于聚焦爬蟲來說,這一過程所得到的分析結(jié)果還可能對(duì)以后的抓取過程給出反饋和指導(dǎo)。   相對(duì)于通用網(wǎng)絡(luò)爬蟲,聚焦爬蟲還需要解決三個(gè)主要問題:   (1) 對(duì)抓取目標(biāo)的描述或定義;   (2) 對(duì)網(wǎng)頁或數(shù)據(jù)的分析與過濾;   (3) 對(duì)URL的搜索策略。   抓取目標(biāo)的描述和定義是決定網(wǎng)頁分析算法與URL搜索策略如何制訂的基礎(chǔ)。而網(wǎng)頁分析算法和候選URL排序算法是決定搜索引擎所提供的服務(wù)形式和爬蟲網(wǎng)頁抓取行為的關(guān)鍵所在。這兩個(gè)部分的算法又是緊密相關(guān)的。   2 抓取目標(biāo)描述   現(xiàn)有聚焦爬蟲對(duì)抓取目標(biāo)的描述可分為基于目標(biāo)網(wǎng)頁特征、基于目標(biāo)數(shù)據(jù)模式和基于領(lǐng)域概念3種。   基于目標(biāo)網(wǎng)頁特征的爬蟲所抓取、存儲(chǔ)并索引的對(duì)象一般為網(wǎng)站或網(wǎng)頁。根據(jù)種子樣本獲取方式可分為:   (1) 預(yù)先給定的初始抓取種子樣本;   (2) 預(yù)先給定的網(wǎng)頁分類目錄和與分類目錄對(duì)應(yīng)的種子樣本,如Yahoo!分類結(jié)構(gòu)等;   (3) 通過用戶行為確定的抓取目標(biāo)樣例,分為:   a) 用戶瀏覽過程中顯示標(biāo)注的抓取樣本;   b) 通過用戶日志挖掘得到訪問模式及相關(guān)樣本。   其中,網(wǎng)頁特征可以是網(wǎng)頁的內(nèi)容特征,也可以是網(wǎng)頁的鏈接結(jié)構(gòu)特征,等等。

編輯本段爬蟲技術(shù)研究綜述

  基于目標(biāo)數(shù)據(jù)模式的爬蟲針對(duì)的是網(wǎng)頁上的數(shù)據(jù),所抓取的數(shù)據(jù)一般要符合一定的模式,或者可以轉(zhuǎn)化或映射為目標(biāo)數(shù)據(jù)模式。   另一種描述方式是建立目標(biāo)領(lǐng)域的本體或詞典,用于從語義角度分析不同特征在某一主題中的重要程度。

編輯本段網(wǎng)頁搜索策略

  網(wǎng)頁的抓取策略可以分為深度優(yōu)先、廣度優(yōu)先和最佳優(yōu)先三種。深度優(yōu)先在很多情況下會(huì)導(dǎo)致爬蟲的陷入(trapped)問題,目前常見的是廣度優(yōu)先和最佳優(yōu)先方法。

廣度優(yōu)先搜索策略

  廣度優(yōu)先搜索策略是指在抓取過程中,在完成當(dāng)前層次的搜索后,才進(jìn)行下一層次的搜索。該算法的設(shè)計(jì)和實(shí)現(xiàn)相對(duì)簡(jiǎn)單。在目前為覆蓋盡可能多的網(wǎng)頁,一般使用廣度優(yōu)先搜索方法。也有很多研究將廣度優(yōu)先搜索策略應(yīng)用于聚焦爬蟲中。其基本思想是認(rèn)為與初始URL在一定鏈接距離內(nèi)的網(wǎng)頁具有主題相關(guān)性的概率很大。另外一種方法是將廣度優(yōu)先搜索與網(wǎng)頁過濾技術(shù)結(jié)合使用,先用廣度優(yōu)先策略抓取網(wǎng)頁,再將其中無關(guān)的網(wǎng)頁過濾掉。這些方法的缺點(diǎn)在于,隨著抓取網(wǎng)頁的增多,大量的無關(guān)網(wǎng)頁將被下載并過濾,算法的效率將變低。

最佳優(yōu)先搜索策略

  最佳優(yōu)先搜索策略按照一定的網(wǎng)頁分析算法,預(yù)測(cè)候選URL與目標(biāo)網(wǎng)頁的相似度,或與主題的相關(guān)性,并選取評(píng)價(jià)最好的一個(gè)或幾個(gè)URL進(jìn)行抓取。它只訪問經(jīng)過網(wǎng)頁分析算法預(yù)測(cè)為“有用”的網(wǎng)頁。存在的一個(gè)問題是,在爬蟲抓取路徑上的很多相關(guān)網(wǎng)頁可能被忽略,因?yàn)樽罴褍?yōu)先策略是一種局部最優(yōu)搜索算法。因此需要將最佳優(yōu)先結(jié)合具體的應(yīng)用進(jìn)行改進(jìn),以跳出局部最優(yōu)點(diǎn)。將在第4節(jié)中結(jié)合網(wǎng)頁分析算法作具體的討論。研究表明,這樣的閉環(huán)調(diào)整可以將無關(guān)網(wǎng)頁數(shù)量降低30%~90%。

編輯本段網(wǎng)頁分析算法

  網(wǎng)頁分析算法可以歸納為基于網(wǎng)絡(luò)拓?fù)洹⒒诰W(wǎng)頁內(nèi)容和基于用戶訪問行為三種類型。

網(wǎng)絡(luò)拓?fù)涞姆治鏊惴?/span>

  基于網(wǎng)頁之間的鏈接,通過已知的網(wǎng)頁或數(shù)據(jù),來對(duì)與其有直接或間接鏈接關(guān)系的對(duì)象(可以是網(wǎng)頁或網(wǎng)站等)作出評(píng)價(jià)的算法。又分為網(wǎng)頁粒度、網(wǎng)站粒度和網(wǎng)頁塊粒度這三種。   1 網(wǎng)頁(Webpage)粒度的分析算法   PageRank和HITS算法是最常見的鏈接分析算法,兩者都是通過對(duì)網(wǎng)頁間鏈接度的遞歸和規(guī)范化計(jì)算,得到每個(gè)網(wǎng)頁的重要度評(píng)價(jià)。PageRank算法雖然考慮了用戶訪問行為的隨機(jī)性和Sink網(wǎng)頁的存在,但忽略了絕大多數(shù)用戶訪問時(shí)帶有目的性,即網(wǎng)頁和鏈接與查詢主題的相關(guān)性。針對(duì)這個(gè)問題,HITS算法提出了兩個(gè)關(guān)鍵的概念:權(quán)威型網(wǎng)頁(authority)和中心型網(wǎng)頁(hub)。   基于鏈接的抓取的問題是相關(guān)頁面主題團(tuán)之間的隧道現(xiàn)象,即很多在抓取路徑上偏離主題的網(wǎng)頁也指向目標(biāo)網(wǎng)頁,局部評(píng)價(jià)策略中斷了在當(dāng)前路徑上的抓取行為。文獻(xiàn)[21]提出了一種基于反向鏈接(BackLink)的分層式上下文模型(Context Model),用于描述指向目標(biāo)網(wǎng)頁一定物理跳數(shù)半徑內(nèi)的網(wǎng)頁拓?fù)鋱D的中心Layer0為目標(biāo)網(wǎng)頁,將網(wǎng)頁依據(jù)指向目標(biāo)網(wǎng)頁的物理跳數(shù)進(jìn)行層次劃分,從外層網(wǎng)頁指向內(nèi)層網(wǎng)頁的鏈接稱為反向鏈接。   2 網(wǎng)站粒度的分析算法   網(wǎng)站粒度的資源發(fā)現(xiàn)和管理策略也比網(wǎng)頁粒度的更簡(jiǎn)單有效。網(wǎng)站粒度的爬蟲抓取的關(guān)鍵之處在于站點(diǎn)的劃分和站點(diǎn)等級(jí)(SiteRank)的計(jì)算。SiteRank的計(jì)算方法與PageRank類似,但是需要對(duì)網(wǎng)站之間的鏈接作一定程度抽象,并在一定的模型下計(jì)算鏈接的權(quán)重。   網(wǎng)站劃分情況分為按域名劃分和按IP地址劃分兩種。文獻(xiàn)[18]討論了在分布式情況下,通過對(duì)同一個(gè)域名下不同主機(jī)、服務(wù)器的IP地址進(jìn)行站點(diǎn)劃分,構(gòu)造站點(diǎn)圖,利用類似PageRank的方法評(píng)價(jià)SiteRank。同時(shí),根據(jù)不同文件在各個(gè)站點(diǎn)上的分布情況,構(gòu)造文檔圖,結(jié)合SiteRank分布式計(jì)算得到DocRank。文獻(xiàn)[18]證明,利用分布式的SiteRank計(jì)算,不僅大大降低了單機(jī)站點(diǎn)的算法代價(jià),而且克服了單獨(dú)站點(diǎn)對(duì)整個(gè)網(wǎng)絡(luò)覆蓋率有限的缺點(diǎn)。附帶的一個(gè)優(yōu)點(diǎn)是,常見PageRank 造假難以對(duì)SiteRank進(jìn)行欺騙。   3 網(wǎng)頁塊粒度的分析算法   在一個(gè)頁面中,往往含有多個(gè)指向其他頁面的鏈接,這些鏈接中只有一部分是指向主題相關(guān)網(wǎng)頁的,或根據(jù)網(wǎng)頁的鏈接錨文本表明其具有較高重要性。但是,在PageRank和HITS算法中,沒有對(duì)這些鏈接作區(qū)分,因此常常給網(wǎng)頁分析帶來廣告等噪聲鏈接的干擾。在網(wǎng)頁塊級(jí)別(Block?level)進(jìn)行鏈接分析的算法的基本思想是通過VIPS網(wǎng)頁分割算法將網(wǎng)頁分為不同的網(wǎng)頁塊(page block),然后對(duì)這些網(wǎng)頁塊建立page?to?block和block?to?page的鏈接矩陣,?分別記為Z和X。于是,在page?to?page圖上的網(wǎng)頁塊級(jí)別的PageRank為?W?p=X×Z;?在block?to?block圖上的BlockRank為?W?b=Z×X。已經(jīng)有人實(shí)現(xiàn)了塊級(jí)別的PageRank和HITS算法,并通過實(shí)驗(yàn)證明,效率和準(zhǔn)確率都比傳統(tǒng)的對(duì)應(yīng)算法要好。

基于網(wǎng)頁內(nèi)容的網(wǎng)頁分析算法

  基于網(wǎng)頁內(nèi)容的分析算法指的是利用網(wǎng)頁內(nèi)容(文本、數(shù)據(jù)等資源)特征進(jìn)行的網(wǎng)頁評(píng)價(jià)。網(wǎng)頁的內(nèi)容從原來的以超文本為主,發(fā)展到后來動(dòng)態(tài)頁面(或稱為Hidden Web)數(shù)據(jù)為主,后者的數(shù)據(jù)量約為直接可見頁面數(shù)據(jù)(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒體數(shù)據(jù)、Web Service等各種網(wǎng)絡(luò)資源形式也日益豐富。因此,基于網(wǎng)頁內(nèi)容的分析算法也從原來的較為單純的文本檢索方法,發(fā)展為涵蓋網(wǎng)頁數(shù)據(jù)抽取、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、語義理解等多種方法的綜合應(yīng)用。本節(jié)根據(jù)網(wǎng)頁數(shù)據(jù)形式的不同,將基于網(wǎng)頁內(nèi)容的分析算法,歸納以下三類:第一種針對(duì)以文本和超鏈接為主的無結(jié)構(gòu)或結(jié)構(gòu)很簡(jiǎn)單的網(wǎng)頁;第二種針對(duì)從結(jié)構(gòu)化的數(shù)據(jù)源(如RDBMS)動(dòng)態(tài)生成的頁面,其數(shù)據(jù)不能直接批量訪問;第三種針對(duì)的數(shù)據(jù)界于第一和第二類數(shù)據(jù)之間,具有較好的結(jié)構(gòu),顯示遵循一定模式或風(fēng)格,且可以直接訪問。   基于文本的網(wǎng)頁分析算法   1) 純文本分類與聚類算法   很大程度上借用了文本檢索的技術(shù)。文本分析算法可以快速有效的對(duì)網(wǎng)頁進(jìn)行分類和聚類,但是由于忽略了網(wǎng)頁間和網(wǎng)頁內(nèi)部的結(jié)構(gòu)信息,很少單獨(dú)使用。   2) 超文本分類和聚類算法

編輯本段補(bǔ)充

  這些處理被稱為網(wǎng)絡(luò)抓取或者蜘蛛爬行。很多站點(diǎn),尤其是搜索引擎,都使用爬蟲提供最新的數(shù)據(jù),它主要用于提供它訪問過頁面的一個(gè)副本,然后,搜索引擎就可以對(duì)得到的頁面進(jìn)行索引,以提供快速的訪問。蜘蛛也可以在web上用來自動(dòng)執(zhí)行一些任務(wù),例如檢查鏈接,確認(rèn)html代碼;也可以用來抓取網(wǎng)頁上某種特定類型信息,例如抓取電子郵件地址(通常用于垃圾郵件)。   一個(gè)網(wǎng)絡(luò)蜘蛛就是一種機(jī)器人,或者軟件代理。大體上,它從一組要訪問的URL鏈接開始,可以稱這些URL為種子。爬蟲訪問這些鏈接,它辨認(rèn)出這些頁面的所有超鏈接,然后添加到這個(gè)URL列表,可以稱作檢索前沿。這些URL按照一定的策略反復(fù)訪問。   主要內(nèi)容   · 1 爬行策略   o 1.1 選擇策略   § 1.1.1 限定訪問鏈接   § 1.1.2 路徑檢索   § 1.1.3 聚焦檢索   § 1.1.4 抓取深層的網(wǎng)頁   § 1.1.5 Web 3.0檢索   o 1.2 重新訪問策略   o 1.3 平衡禮貌策略   o 1.4 并行化策略   · 2 網(wǎng)絡(luò)爬蟲體系結(jié)構(gòu)   o 2.1 URL規(guī)范化   · 3 爬蟲身份識(shí)別   · 4 網(wǎng)絡(luò)爬蟲的例子   o 4.1 開源的網(wǎng)絡(luò)爬蟲   1. 爬行策略   下述的三種網(wǎng)絡(luò)特征,造成了設(shè)計(jì)網(wǎng)頁爬蟲抓取策略變得很難:   ? 它巨大的數(shù)據(jù)量;   ? 它快速的更新頻率;   ? 動(dòng)態(tài)頁面的產(chǎn)生   它們?nèi)齻€(gè)特征一起產(chǎn)生了很多種類的爬蟲抓取鏈接。   巨大的數(shù)據(jù)量暗示了爬蟲,在給定的時(shí)間內(nèi),只可以抓取所下載網(wǎng)絡(luò)的一部分,所以,它需要對(duì)它的抓取頁面設(shè)置優(yōu)先級(jí);快速的更新頻率說明在爬蟲抓取下載某網(wǎng)站一個(gè)網(wǎng)頁的時(shí)候,很有可能在這個(gè)站點(diǎn)又有很的網(wǎng)頁被添加進(jìn)來,或者這個(gè)頁面被更新或者刪除了。   最近新增的很多頁面都是通過服務(wù)器端腳本語言產(chǎn)生的,無窮的參數(shù)組合也增加了爬蟲抓取的難度,只有一小部分這種組合會(huì)返回一些獨(dú)特的內(nèi)容。例如,一個(gè)很小照片存儲(chǔ)庫(kù)僅僅通過get方式可能提供就給用戶三種操作方式。如果這里存著四種分類方式,三種縮略圖方式,兩種文件格式,和一個(gè)禁止用戶提供內(nèi)容的選項(xiàng),那么,同樣的內(nèi)容就可以通過48種方式訪問。這種數(shù)學(xué)組合給網(wǎng)絡(luò)爬蟲創(chuàng)造的難處就是,為了獲取不同的內(nèi)容,他們必須篩選無窮僅有微小變化的組合。   正如愛德華等人所說的:“用于檢索的帶寬不是無限的,也不是免費(fèi)的;所以,如果引入衡量爬蟲抓取質(zhì)量或者新鮮度的有效指標(biāo)的話,不但伸縮性,連有效性都將變得十分必要”(愛德華等人,2001年)。一個(gè)爬蟲就必須小心的選擇下一步要訪問什么頁面。網(wǎng)頁爬蟲的行為通常是四種策略組合的結(jié)果。   ? 選擇策略,決定所要下載的頁面;   ? 重新訪問策略,決定什么時(shí)候檢查頁面的更新變化;   ? 平衡禮貌策略,指出怎樣避免站點(diǎn)超載;   ? 并行策略,指出怎么協(xié)同達(dá)到分布式抓取的效果;   1.1 選擇策略:   就現(xiàn)在網(wǎng)絡(luò)資源的大小而言,即使很大的搜索引擎也只能獲取網(wǎng)絡(luò)上可得到資源的一小部分。由勞倫斯河蓋爾斯共同做的一項(xiàng)研究指出,沒有一個(gè)搜索引擎抓取的內(nèi)容達(dá)到網(wǎng)絡(luò)的16%(勞倫斯河蓋爾斯,2001)。網(wǎng)絡(luò)爬蟲通常僅僅下載網(wǎng)頁內(nèi)容的一部分,但是大家都還是強(qiáng)烈要求下載的部分包括最多的相關(guān)頁面,而不僅僅是一個(gè)隨機(jī)的簡(jiǎn)單的站點(diǎn)。   這就要求一個(gè)公共標(biāo)準(zhǔn)來區(qū)分網(wǎng)頁的重要程度,一個(gè)頁面的重要程度與他自身的質(zhì)量有關(guān),與按照鏈接數(shù)、訪問數(shù)得出的受歡迎程度有關(guān),甚至與他本身的網(wǎng)址(后來出現(xiàn)的把搜索放在一個(gè)頂級(jí)域名或者一個(gè)固定頁面上的垂直搜索)有關(guān)。設(shè)計(jì)一個(gè)好的搜索策略還有額外的困難,它必須在不完全信息下工作,因?yàn)檎麄€(gè)頁面的集合在抓取時(shí)是未知的。   Cho等人(Cho et al,1998)做了第一份抓取策略的研究。他們的數(shù)據(jù)是斯坦福大學(xué)網(wǎng)站中的18萬個(gè)頁面,使用不同的策略分別模仿抓取。排序的方法使用了廣度優(yōu)先,后鏈計(jì)數(shù),和部分pagerank算法。計(jì)算顯示,如果你想要優(yōu)先下載pagerank高的頁面,那么,部分PageRank策略是比較好的,其次是廣度優(yōu)先和后鏈計(jì)數(shù)。并且,這樣的結(jié)果僅僅是針對(duì)一個(gè)站點(diǎn)的。   Najork和Wiener (Najork and Wiener, 2001)采用實(shí)際的爬蟲,對(duì)3.28億個(gè)網(wǎng)頁,采用廣度優(yōu)先研究。他們發(fā)現(xiàn)廣度優(yōu)先會(huì)較早的抓到PageRank高的頁面(但是他們沒有采用其他策略進(jìn)行研究)。作者給出的解釋是:“最重要的頁面會(huì)有很多的主機(jī)連接到他們,并且那些鏈接會(huì)較早的發(fā)現(xiàn),而不用考慮從哪一個(gè)主機(jī)開始。”   Abiteboul (Abiteboul 等人, 2003),設(shè)計(jì)了一種基于OPIC(在線頁面重要指數(shù))的抓取戰(zhàn)略。在OPIC中,每一個(gè)頁面都有一個(gè)相等的初始權(quán)值,并把這些權(quán)值平均分給它所指向的頁面。這種算法與Pagerank相似,但是他的速度很快,并且可以一次完成。OPIC的程序首先抓取獲取權(quán)值最大的頁面,實(shí)驗(yàn)在10萬個(gè)冪指分布的模擬頁面中進(jìn)行。并且,實(shí)驗(yàn)沒有和其它策略進(jìn)行比較,也沒有在真正的WEB頁面測(cè)試。   Boldi等人(Boldi et al., 2004)的模擬檢索實(shí)驗(yàn)進(jìn)行在 從.it網(wǎng)絡(luò)上取下的4000萬個(gè)頁面和從webbase得到的1億個(gè)頁面上,測(cè)試廣度優(yōu)先和深度優(yōu)先,隨機(jī)序列和有序序列。比較的基礎(chǔ)是真實(shí)頁面pageRank值和計(jì)算出來的pageRank值的接近程度。令人驚奇的是,一些計(jì)算pageRank很快的頁面(特別明顯的是廣度優(yōu)先策略和有序序列)僅僅可以達(dá)到很小的接近程度。   Baeza-Yates等人(Baeza-Yates et al., 2005) 在從.gr域名和.cl域名子網(wǎng)站上獲取的300萬個(gè)頁面上模擬實(shí)驗(yàn),比較若干個(gè)抓取策略。結(jié)果顯示OPIC策略和站點(diǎn)隊(duì)列長(zhǎng)度,都比廣度優(yōu)先要好;并且如果可行的話,使用之前的爬行抓取結(jié)果來指導(dǎo)這次抓取,總是十分有效的。   Daneshpajouh等人(Daneshpajouh et al., 2008)設(shè)計(jì)了一個(gè)用于尋找好種子的社區(qū)。它們從來自不同社區(qū)的高PageRank頁面開始檢索的方法,迭代次數(shù)明顯小于使用隨機(jī)種子的檢索。使用這種方式,可以從以前抓取頁面之中找到好的種子,使用這些種子是十分有效的。   1.1.1 限定訪問鏈接   一個(gè)爬蟲可能僅僅想找到html頁面的種子而避免其他的文件類型。為了僅僅得到html的資源,一個(gè)爬蟲可以首先做一個(gè)http head的請(qǐng)求,以在使用request方法獲取所有的資源之前,決定這個(gè)網(wǎng)絡(luò)文件的類型。為了避免要發(fā)送過多的head請(qǐng)求,爬蟲可以交替的檢查url并且僅僅對(duì)以html,htm和反斜杠結(jié)尾的文件發(fā)送資源請(qǐng)求。這種策略會(huì)導(dǎo)致很多的html資源在無意中錯(cuò)過,一種相似的策略是將網(wǎng)絡(luò)資源的擴(kuò)展名同已知是html文件類型的一組擴(kuò)展名(如.html,.htm,.asp,.php,.aspx,反斜杠)進(jìn)行比較。   一些爬蟲也會(huì)限制對(duì)任何含有“?”的資源(這些是動(dòng)態(tài)生成的)進(jìn)行獲取請(qǐng)求,以避免蜘蛛爬行在某一個(gè)站點(diǎn)中陷入下載無窮無盡的URL的困境。   1.1.2 路徑檢索   一些爬蟲會(huì)盡可能多的嘗試下載一個(gè)特定站點(diǎn)的資源。Cothey(Cothey,2004)引入了一種路徑檢索的爬蟲,它會(huì)嘗試抓取需要檢索資源的所有URL。例如,給定一個(gè)種子地址:http://llama.org/hamster/monkey/page.html,它將會(huì)嘗試檢索/hamster/menkey/,/hamster/和/ 。Cothey發(fā)現(xiàn)路徑檢索對(duì)發(fā)現(xiàn)獨(dú)立資源,或者一些通常爬蟲檢索不到的的連接是非常有效的。   一些路徑檢索的爬蟲也被稱為收割機(jī)軟件,因?yàn)樗麄兺ǔS糜谑崭罨蛘呤占械膬?nèi)容,可能是從特定的頁面或者主機(jī)收集相冊(cè)的照片。   1.1.3 聚焦抓取   爬蟲所抓取頁面的重要程度也可以表述成它與給定查詢之間相似程度的函數(shù)。網(wǎng)絡(luò)爬蟲嘗試下載相似頁面,可以稱為聚焦檢索或者主題檢索。關(guān)于主題檢索和聚焦檢索的概念,最早是由Menczer(Menczer 1997; Menczer and Belew, 1998)和Chakrabarti等人首先提出來的(Chakrabarti et al., 1999)。   聚焦檢索的主要問題是網(wǎng)頁爬蟲的使用環(huán)境,我們希望在實(shí)際下載頁面之前,就可以知道給定頁面和查詢之間的相似度。一個(gè)可能的方法就是在鏈接之中設(shè)置錨點(diǎn),這就是在早期時(shí)候,Pinkerton(Pinkerton,1994)曾經(jīng)在一個(gè)爬蟲中采用的策略。Diligenti等人(Diligenti等人,2000)建議使用已經(jīng)抓取頁面的內(nèi)容去推測(cè)查詢和未訪問頁的相似度。一個(gè)聚焦查詢的表現(xiàn)的好壞主要依賴于查詢主題內(nèi)容的豐富程度,通常還會(huì)依賴頁面查詢引擎提供的查詢起點(diǎn)。   1.1.4 抓取深層的網(wǎng)頁   很多的頁面隱藏的很深或隱藏在在看不到的網(wǎng)絡(luò)之中。這些頁面通常只有在向數(shù)據(jù)庫(kù)提交查詢的時(shí)候才可以訪問到,如果沒有鏈接指向他們的話,一般的爬蟲是不能訪問到這些頁面的。谷歌站點(diǎn)地圖協(xié)議和mod oai(Nelson等人,2005)嘗試允許發(fā)現(xiàn)這些深層次的資源。   深層頁面抓取器增加了抓取網(wǎng)頁的鏈接數(shù)。一些爬蟲僅僅抓取形如<a href=”url”鏈接。某些情況下,例如Googlebot,WEB抓取的是所有超文本所包含的內(nèi)容,標(biāo)簽和文本。   1.1.5 WEB3.0檢索   Web3.0為下一代搜索技術(shù)定義了更先進(jìn)的技術(shù)和新的準(zhǔn)則,可以概括為語義網(wǎng)絡(luò)和網(wǎng)站模板解析的概念。第三代檢索技術(shù)將建立在人機(jī)巧妙的聯(lián)系的基礎(chǔ)上。   1.2重新訪問策略   網(wǎng)絡(luò)具有動(dòng)態(tài)性很強(qiáng)的特性。抓取網(wǎng)絡(luò)上的一小部分內(nèi)容可能會(huì)花費(fèi)真的很長(zhǎng)的時(shí)間,通常用周或者月來衡量。當(dāng)爬蟲完成它的抓取的任務(wù)以后,很多操作是可能會(huì)發(fā)生的,這些操作包括新建,更新和刪除。   從搜索引擎的角度來看,不檢測(cè)這些事件是有成本的,成本就是我們僅僅擁有一份過時(shí)的資源。最常使用的成本函數(shù),是新鮮度和過時(shí)性(2000年,Cho 和Garcia-Molina)   新鮮度:這是一個(gè)衡量抓取內(nèi)容是不是準(zhǔn)確的二元值。在時(shí)間t內(nèi),倉(cāng)庫(kù)中頁面p的新鮮度是這樣定義的:

新鮮度

  過時(shí)性:這是一個(gè)衡量本地已抓取的內(nèi)容過時(shí)程度的指標(biāo)。在時(shí)間t時(shí),倉(cāng)庫(kù)中頁面p的時(shí)效性的定義如下:

過時(shí)性

  在頁面抓取中,新鮮度和過時(shí)性的發(fā)展   Coffman等人(Edward G. Coffman,1998)是從事爬蟲對(duì)象定義的,他們提出了一個(gè)相當(dāng)于新鮮度的概念,但是使用了不同的措詞:他們建議爬蟲必須最小化過時(shí)頁面部分。他們指出網(wǎng)絡(luò)爬行的問題就相當(dāng)于多個(gè)隊(duì)列,一個(gè)投票系統(tǒng);這里,爬蟲是服務(wù)器,不同的站點(diǎn)是隊(duì)列。頁面修改是到達(dá)的顧客,頁面切換的時(shí)間是頁面進(jìn)入一個(gè)單一站點(diǎn)的間隔。在這個(gè)模型下,每一個(gè)顧客在投票系統(tǒng)的平均時(shí)間,相當(dāng)于爬蟲的平均過時(shí)性。   爬蟲的目標(biāo)是盡可能高的提高頁面的新鮮度,同時(shí)降低頁面的過時(shí)性。這一目標(biāo)并不是完全一樣的,第一種情況,爬蟲關(guān)心的是有多少頁面時(shí)過時(shí)的;在第二種情況,爬蟲關(guān)心的頁面過時(shí)了多少。   兩種最簡(jiǎn)單的重新訪問策略是由Cho和Garcia-Molina研究的(Cho 和Garcia-Molina,2003):   統(tǒng)一策略:使用相同的頻率,重新訪問收藏中的所有的鏈接,而不考慮他們更新頻率。   正比策略:對(duì)變化越多的網(wǎng)頁,重新訪問的頻率也越高。網(wǎng)頁訪問的頻率和網(wǎng)頁變化的頻率直接相關(guān)。   (兩種情況下,爬蟲的重新抓取都可以采用隨機(jī)方式,或者固定的順序)   Cho和Garcia-Molina證明了一個(gè)出人意料的結(jié)果。以平均新鮮度方式衡量,統(tǒng)一策略在模擬頁面和真實(shí)的網(wǎng)絡(luò)抓取中都比正比策略出色。對(duì)于這種結(jié)果的解釋是:當(dāng)一個(gè)頁面變化太快的時(shí)候,爬蟲將會(huì)將會(huì)在不斷的嘗試重新抓取而浪費(fèi)很多時(shí)間,但是卻還是不能保證頁面的新鮮度。   為了提高頁面的新鮮度,我們應(yīng)該宣判變化太快的頁面死罪(Cho和Garcia-Molina, 2003a)。最佳的重新訪問策略既不是統(tǒng)一策略,也不是正比策略;保持平均頁面新鮮度高的最佳方法策略包括忽略那些變化太快的頁面,而保持頁面平均過時(shí)性低的方法則是對(duì)每一頁按照頁面變化率單調(diào)變化的策略訪問。兩種情況下,最佳的策略較正比策略,都更接近統(tǒng)一策略。正如Coffman等人(Edward G.Coffman,1998)所注意到的:“為了最小化頁面過時(shí)的時(shí)間,對(duì)任一個(gè)頁面的訪問都應(yīng)該盡可能的均勻間隔地訪問。”對(duì)于重新訪問的詳盡的策略在大體上是不可以達(dá)到的,但是他們可以從數(shù)學(xué)上得到,因?yàn)樗麄円蕾囉陧撁娴淖兓?#xff08;Cho和Garcia-Molina,2003a)指出指數(shù)變化是描述頁面變化的好方法,同時(shí)(Ipeirotis等人,2005)指出了怎么使用統(tǒng)計(jì)工具去發(fā)現(xiàn)適合這些變化的參數(shù)。注意在這里的重新訪問策略認(rèn)為每一個(gè)頁面都是相同的(網(wǎng)絡(luò)上所有的頁面價(jià)值都是一樣的)這不是現(xiàn)實(shí)的情況,所以,為了獲取更好的抓取策略,更多有關(guān)網(wǎng)頁質(zhì)量的信息應(yīng)該考慮進(jìn)去。   1.3 平衡禮貌策略   爬蟲相比于人,可以有更快的檢索速度和更深的層次,所以,他們可能使一個(gè)站點(diǎn)癱瘓。不需要說一個(gè)單獨(dú)的爬蟲一秒鐘要執(zhí)行多條請(qǐng)求,下載大的文件。一個(gè)服務(wù)器也會(huì)很難響應(yīng)多線程爬蟲的請(qǐng)求。   就像Koster(Koster,1995)所注意的那樣,爬蟲的使用對(duì)很多工作都是很有用的,但是對(duì)一般的社區(qū),也需要付出代價(jià)。使用爬蟲的代價(jià)包括:   ? 網(wǎng)絡(luò)資源:在很長(zhǎng)一段時(shí)間,爬蟲使用相當(dāng)?shù)膸捀叨炔⑿械毓ぷ鳌?   ? 服務(wù)器超載:尤其是對(duì)給定服務(wù)器的訪問過高時(shí)。   ? 質(zhì)量糟糕的爬蟲,可能是服務(wù)器或者路由器癱瘓,或者會(huì)嘗試下載自己無法處理的頁面。   ? 個(gè)人爬蟲,如果過多的人使用,可能是網(wǎng)絡(luò)或者服務(wù)器阻塞。   對(duì)這些問題的一個(gè)部分解決方法是漫游器排除協(xié)議(Robots exclusion protocol),也被稱為robots.txt議定書(Koster,1996),這份協(xié)議對(duì)于管理員指明網(wǎng)絡(luò)服務(wù)器的那一部分不能到達(dá)是一個(gè)標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)沒有包括重新訪問一臺(tái)服務(wù)器的間隔的建議,雖然訪問間隔是避免服務(wù)器超載的最有效的辦法。最近的商業(yè)搜索軟件,如Ask Jeeves,MSN和Yahoo可以在robots.txt中使用一個(gè)額外的 “Crawl-delay”參數(shù)來指明請(qǐng)求之間的延遲。   對(duì)連接間隔時(shí)間的第一個(gè)建議由Koster 1993年給出,時(shí)間是60秒。按照這個(gè)速度,如果一個(gè)站點(diǎn)有超過10萬的頁面,即使我們擁有零延遲和無窮帶寬的完美連接,它也會(huì)需要兩個(gè)月的時(shí)間來下載整個(gè)站點(diǎn),并且,這個(gè)服務(wù)器中的資源,只有一小部分可以使用。這似乎是不可以接受的。   Cho(Cho和Garcia-Molina, 2003)使用10秒作為訪問的間隔時(shí)間,WIRE爬蟲(Baeza-Yates and Castillo, 2002)使用15秒作為默認(rèn)間隔。MercatorWeb(Heydon 和Najork, 1999)爬蟲使用了一種自適應(yīng)的平衡策略:如果從某一服務(wù)器下載一個(gè)文檔需要t秒鐘,爬蟲就等待10t秒的時(shí)間,然后開始下一個(gè)頁面。Dill等人 (Dill et al., 2002) 使用1秒。   對(duì)于那些使用爬蟲用于研究目的的,一個(gè)更詳細(xì)的成本-效益分析是必要的,當(dāng)決定去哪一個(gè)站點(diǎn)抓取,使用多快的速度抓取的時(shí)候,倫理的因素也需要考慮進(jìn)來。   訪問記錄顯示已知爬蟲的訪問間隔從20秒鐘到3-4分鐘不等。需要注意的是即使很禮貌,采取了所有的安全措施來避免服務(wù)器超載,還是會(huì)引來一些網(wǎng)絡(luò)服務(wù)器管理員的抱怨的。Brin和Page注意到:運(yùn)行一個(gè)針對(duì)超過50萬服務(wù)器的爬蟲,會(huì)產(chǎn)生很多的郵件和電話。這是因?yàn)橛袩o數(shù)的人在上網(wǎng),而這些人不知道爬蟲是什么,因?yàn)檫@是他們第一次見到。(Brin和Page,1998)   1.4 并行策略   一個(gè)并行爬蟲是并行運(yùn)行多個(gè)進(jìn)程的爬蟲。它的目標(biāo)是最大化下載的速度,同時(shí)盡量減少并行的開銷和下載重復(fù)的頁面。為了避免下載一個(gè)頁面兩次,爬蟲系統(tǒng)需要策略來處理爬蟲運(yùn)行時(shí)新發(fā)現(xiàn)的URL,因?yàn)橥粋€(gè)URL地址,可能被不同的爬蟲進(jìn)程抓到。   參考文獻(xiàn)   [1] Edwards, J., McCurley, K. S., and Tomlin, J. A. (2001). "An adaptive model for optimizing performance of an incremental web crawler". In Proceedings of the Tenth Conference on World Wide Web (Hong Kong: Elsevier Science): 106–113. doi:10.1145/371920.371960.   [2] Lawrence, Steve; C. Lee Giles (1999). "Accessibility of information on the web". Nature 400 (6740): 107. doi:10.1038/21987.   [3] Junghoo Cho. Hector Garcia-Molina. Lawrence Page (1998). Efficient Crawling Through URL Ordering. Computer Networks 30(1-7): 161-172   [4] Najork, M. and Wiener, J. L. (2001). Breadth-first crawling yields high-quality pages. In Proceedings of the 10th international Conference on World Wide Web (Hong Kong, May 01 - 05, 2001). WWW '01. ACM Press, 114-118.   [5] Serge Abiteboul, Mihai Preda, Gregory Cobena (2003). Adaptive on-line page importance computation.International World Wide Web Conference archive. Proceedings of the 12th international conference on World Wide Web. ACM Press, 280-290.   [6] Boldi, Paolo; Massimo Santini, Sebastiano Vigna (2004). "Do Your Worst to Make the Best: Paradoxical Effects in PageRank Incremental Computations". Algorithms and Models for the Web-Graph. pp. 168–180.   [7] Ricardo Baeza-Yates, Carlos Castillo, Mauricio Marin, Andrea Rodriguez (2005). Crawling a country: better strategies than breadth-first for web page ordering. International World Wide Web Conference archive Special interest tracks and posters of the 14th international conference on World Wide Web table of contents ( Chiba, Japan). ACM Press, 864 - 872.   [8] Sh. Daneshpajouh, Mojtaba Mohammadi Nasiri, M. Ghodsi (2008). A Fast Community Based Algorithm for Generating Crawler Seeds Set, In Proceeding of 4th International Conference on Web Information Systems and Technologies (WEBIST-2008), Funchal, Portugal, May 2008.   [9] Viv Cothey. Web-crawling reliability (2004). Journal of the American Society for Information Science and Technology, 55(14), pp 1228-1238.   [10] Menczer, F. (1997). ARACHNID: Adaptive Retrieval Agents Choosing Heuristic Neighborhoods for Information Discovery. In D. Fisher, ed., Machine Learning: Proceedings of the 14th International Conference (ICML97). Morgan Kaufmann   [11] Menczer, F. and Belew, R.K. (1998). Adaptive Information Agents in Distributed Textual Environments. In K. Sycara and M. Wooldridge (eds.) Proc. 2nd Intl. Conf. on Autonomous Agents (Agents '98). ACM Press   [12] Chakrabarti, S., van den Berg, M., and Dom, B. (1999). Focused crawling: a new approach to topic-specific web resource discovery. Computer Networks, 31(11–16):1623–1640.   [13] Pinkerton, B. (1994). Finding what people want: Experiences with the WebCrawler. In Proceedings of the First World Wide Web Conference, Geneva, Switzerland   [14] M. Diligenti, F.M. Coetzee, S. Lawrence, C.L. Giles, M. Gori (2000). Focused Crawling Using Context Graphs. 26th International Conference on Very Large Databases, VLDB 2000.   [15] [15] Nelson, Michael L; Herbert Van de Sompel, Xiaoming Liu, Terry L Harrison, Nathan McFarland (2005). "mod_oai: An Apache Module for Metadata Harvesting". Cs/0503069.   [16] Junghoo Cho. Hector Garcia-Molina (2000). Synchronizing a database to improve freshness. ACM SIGMOD Record archive. Volume 29 , Issue 2 (June 2000) table of contents. Pages: 117 - 128.   [17] Jr, E. G. Coffman; Zhen Liu, Richard R. Weber (1998). "Optimal robot scheduling for Web search engines". Journal of Scheduling 1 (1): 15–29.   [18] Junghoo Cho. Hector Garcia-Molina (2003). Effective page refresh policies for Web crawlers. ACM Transactions on Database Systems (TODS). Pages: 390 - 426.   [19] Cho, Junghoo; Hector Garcia-Molina (2003). "Estimating frequency of change". ACM Trans. Interet Technol. 3 (3): 256–290.   [20] Ipeirotis, P., Ntoulas, A., Cho, J., Gravano, L. (2005) Modeling and managing content changes in text databases. In Proceedings of the 21st IEEE International Conference on Data Engineering, pages 606-617, April 2005, Tokyo.   [21] M. Koster (1995). Robots in the web:threat or treat? OII Spectrum, 1995, vol. 2, no9, pp. 8-18.   [22] M. Koster (1996). The Web Robots Page. Available at http://info.webcrawler.com/mak/projects/robots/robots.html.   [23] Koster, M. (1993). Guidelines for robots writers.   [24] Baeza-Yates, R. and Castillo, C. (2002). Balancing volume, quality and freshness in Web crawling. In Soft Computing Systems – Design, Management and Applications, pages 565–572, Santiago, Chile. IOS Press Amsterdam.   [25] Heydon, Allan; Najork, Marc (1999) . Mercator: A Scalable, Extensible Web Crawler. http://www.cindoc.csic.es/cybermetrics/pdf/68.pdf.   [26] Dill, S., Kumar, R., Mccurley, K. S., Rajagopalan, S., Sivakumar, D., and Tomkins, A. (2002). Self-similarity in the web. ACM Trans. Inter. Tech., 2(3):205–223.   2. 網(wǎng)絡(luò)爬蟲體系結(jié)構(gòu)   網(wǎng)頁爬蟲的高層體系結(jié)構(gòu)   一個(gè)爬蟲不能像上面所說的,僅僅只有一個(gè)好的抓取策略,還需要有一個(gè)高度優(yōu)化的結(jié)構(gòu)。   Shkapenyuk和Suel(Shkapenyuk和Suel,2002)指出:設(shè)計(jì)一個(gè)短時(shí)間內(nèi),一秒下載幾個(gè)頁面的頗慢的爬蟲是一件很容易的事情,而要設(shè)計(jì)一個(gè)使用幾周可以下載百萬級(jí)頁面的高性能的爬蟲,將會(huì)在系統(tǒng)設(shè)計(jì),I/O和網(wǎng)絡(luò)效率,健壯性和易用性方面遇到眾多挑戰(zhàn)。   網(wǎng)路爬蟲是搜索引擎的核心,他們算法和結(jié)構(gòu)上的細(xì)節(jié)被當(dāng)作商業(yè)機(jī)密。當(dāng)爬蟲的設(shè)計(jì)發(fā)布時(shí),總會(huì)有一些為了阻止別人復(fù)制工作而缺失的細(xì)節(jié)。人們也開始關(guān)注主要用于阻止主要搜索引擎發(fā)布他們的排序算法的“搜索引擎垃圾郵件”。   2.1 URL一般化   爬蟲通常會(huì)執(zhí)行幾種類型的URL規(guī)范化來避免重復(fù)抓取某些資源。URL一般化也被稱為URL標(biāo)準(zhǔn)化,指的是修正URL并且使其前后一致的過程。這里有幾種一般化方法,包括轉(zhuǎn)化URL為小寫的,去除逗號(hào)(如‘.’ ‘..’等),對(duì)非空的路徑,在末尾加反斜杠。   3. 爬蟲身份識(shí)別   網(wǎng)絡(luò)爬蟲通過使用http請(qǐng)求的用戶代理字段來向網(wǎng)絡(luò)服務(wù)器表明他們的身份。網(wǎng)絡(luò)管理員則通過檢查網(wǎng)絡(luò)服務(wù)器的日志,使用用戶代理字段來辨認(rèn)哪一個(gè)爬蟲曾經(jīng)訪問過以及它訪問的頻率。用戶代理字段可能會(huì)包含一個(gè)可以讓管理員獲取爬蟲更多信息的URL。郵件抓取器和其他懷有惡意的網(wǎng)絡(luò)爬蟲通常不會(huì)留任何的用戶代理字段內(nèi)容,或者他們也會(huì)將他們的身份偽裝成瀏覽器或者其他的知名爬蟲。   對(duì)于網(wǎng)路爬蟲,留下用戶標(biāo)志信息是十分重要的;這樣,網(wǎng)絡(luò)管理員在需要的時(shí)候就可以聯(lián)系爬蟲的主人。有時(shí),爬蟲可能會(huì)陷入爬蟲陷阱或者是一個(gè)服務(wù)器超負(fù)荷,這時(shí),爬蟲主人需要使爬蟲停止。對(duì)那些有興趣了解特定爬蟲訪問時(shí)間網(wǎng)絡(luò)管理員來講,用戶標(biāo)識(shí)信息是十分重要的。   4.用戶爬蟲的例子   以下是一系列已經(jīng)發(fā)布的一般用途的網(wǎng)絡(luò)爬蟲(除了主題檢索的爬蟲)的體系結(jié)構(gòu),包括了對(duì)不同組件命名和突出特點(diǎn)的簡(jiǎn)短的描述。   ? RBSE (Eichmann,1994)是第一個(gè)發(fā)布的爬蟲。它有兩個(gè)基礎(chǔ)程序。第一個(gè)是“spider”,抓取隊(duì)列中的內(nèi)容到一個(gè)關(guān)系數(shù)據(jù)庫(kù)中,第二個(gè)程序是“mite”,是一個(gè)修改后的www的ASCII瀏覽器,負(fù)責(zé)從網(wǎng)絡(luò)上下載頁面。   ? WebCrawler(Pinkerton,1994)是第一個(gè)公開可用的 用來建立全文索引的一個(gè)子程序,他使用庫(kù)www來下載頁面;另外一個(gè)程序使用廣度優(yōu)先來解析獲取URL并對(duì)其排序;它還包括一個(gè)根據(jù)選定文本和查詢相似程度爬行的實(shí)時(shí)爬蟲。   ? World Wide Web Worm (McBryan, 1994)是一個(gè)用來為文件建立包括標(biāo)題和URL簡(jiǎn)單索引的爬蟲。索引可以通過grep式的Unix命令來搜索。   ? Google Crawler (Brin and Page, 1998)用了一些細(xì)節(jié)來描述,但是這些細(xì)節(jié)僅僅是關(guān)于使用C++和Python編寫的、一個(gè)早期版本的體系結(jié)構(gòu)。因?yàn)槲谋窘馕鼍褪侨臋z索和URL抽取的過程,所以爬蟲集成了索引處理。這里擁有一個(gè)URL服務(wù)器,用來給幾個(gè)爬蟲程序發(fā)送要抓取的URL列表。在文本解析的時(shí)候,新發(fā)現(xiàn)的URL傳送給URL服務(wù)器并檢測(cè)這個(gè)URL是不是已經(jīng)存在,如果不存在的話,該URL就加入到URL服務(wù)器中。   ? CobWeb (da Silva et al., 1999)使用了一個(gè)中央“調(diào)度者”和一系列的“分布式的搜集者”。搜集者解析下載的頁面并把找到的URL發(fā)送給調(diào)度者,然后調(diào)度者反過來分配給搜集者。調(diào)度者使用深度優(yōu)先策略,并且使用平衡禮貌策略來避免服務(wù)器超載。爬蟲是使用Perl語言編寫的。   ? Mercator (Heydon and Najork, 1999; Najork and Heydon, 2001)是一個(gè)分布式的,模塊化的使用java編寫的網(wǎng)絡(luò)爬蟲。它的模塊化源自于使用可互換的的“協(xié)議模塊”和“處理模塊”。協(xié)議模塊負(fù)責(zé)怎樣獲取網(wǎng)頁(例如使用HTTP),處理模塊負(fù)責(zé)怎樣處理頁面。標(biāo)準(zhǔn)處理模塊僅僅包括了解析頁面和抽取URL,其他處理模塊可以用來檢索文本頁面,或者搜集網(wǎng)絡(luò)數(shù)據(jù)。   ? WebFountain (Edwards et al., 2001)是一個(gè)與Mercator類似的分布式的模塊化的爬蟲,但是使用C++編寫的。它的特點(diǎn)是一個(gè)管理員機(jī)器控制一系列的螞蟻機(jī)器。經(jīng)過多次下載頁面后,頁面的變化率可以推測(cè)出來,這時(shí),一個(gè)非線性的方法必須用于求解方程以獲得一個(gè)最大的新鮮度的訪問策略。作者推薦在早期檢索階段使用這個(gè)爬蟲,然后用統(tǒng)一策略檢索,就是所有的頁面都使用相同的頻率訪問。   ? PolyBot [Shkapenyuk and Suel, 2002]是一個(gè)使用C++和Python編寫的分布式網(wǎng)絡(luò)爬蟲。它由一個(gè)爬蟲管理者,一個(gè)或多個(gè)下載者,一個(gè)或多個(gè)DNS解析者組成。抽取到的URL被添加到硬盤的一個(gè)隊(duì)列里面,然后使用批處理的模式處理這些URL。平衡禮貌方面考慮到了第二、三級(jí)網(wǎng)域(例如www.example.com 和 www2.example.com 都是三級(jí)網(wǎng)域),因?yàn)榈谌?jí)網(wǎng)域通常也會(huì)保存在同一個(gè)網(wǎng)絡(luò)服務(wù)器上。   ? WebRACE (Zeinalipour-Yazti and Dikaiakos, 2002)是一個(gè)使用java實(shí)現(xiàn)的,擁有檢索模塊和緩存模塊的爬蟲,它是一個(gè)很通用的稱作eRACE的系統(tǒng)的一部分。系統(tǒng)從用戶得到下載頁面的請(qǐng)求,爬蟲的行為有點(diǎn)像一個(gè)聰明的代理服務(wù)器。系統(tǒng)還監(jiān)視訂閱網(wǎng)頁的請(qǐng)求,當(dāng)網(wǎng)頁發(fā)生改變的時(shí)候,它必須使爬蟲下載更新這個(gè)頁面并且通知訂閱者。WebRACE最大的特色是,當(dāng)大多數(shù)的爬蟲都從一組URL開始的時(shí)候,WebRACE可以連續(xù)地的接收抓取開始的URL地址。   ? Ubicrawer (Boldi et al., 2004)是一個(gè)使用java編寫的分布式爬蟲。它沒有中央程序。它有一組完全相同的代理組成,分配功能通過主機(jī)前后一致的散列計(jì)算進(jìn)行。這里沒有重復(fù)的頁面,除非爬蟲崩潰了(然后,另外一個(gè)代理就會(huì)接替崩潰的代理重新開始抓取)。爬蟲設(shè)計(jì)為高伸縮性和允許失敗的。   ? FAST Crawler (Risvik and Michelsen, 2002) 是一個(gè)分布式的爬蟲,在Fast Search&Transfer中使用,關(guān)于其體系結(jié)構(gòu)的一個(gè)大致的描述可以在[citation needed]找到。   ? Labrador,一個(gè)工作在開源項(xiàng)目Terrier Search Engine上的非開源的爬蟲。   ? TeezirCrawler是一個(gè)非開源的可伸縮的網(wǎng)頁抓取器,在Teezir上使用。該程序被設(shè)計(jì)為一個(gè)完整的可以處理各種類型網(wǎng)頁的爬蟲,包括各種JavaScript和HTML文檔。爬蟲既支持主題檢索也支持非主題檢索。   ? Spinn3r, 一個(gè)通過博客構(gòu)建Tailrank.com反饋信息的爬蟲。 Spinn3r是基于java的,它的大部分的體系結(jié)構(gòu)都是開源的。   ? HotCrawler,一個(gè)使用c語言和php編寫的爬蟲。   ? ViREL Microformats Crawler,搜索公眾信息作為嵌入到網(wǎng)頁的一小部分。   除了上面列出的幾個(gè)特定的爬蟲結(jié)構(gòu)以外,還有Cho (Cho and Garcia-Molina, 2002)和Chakrabarti (Chakrabarti, 2003)發(fā)布的一般的爬蟲體系結(jié)構(gòu)。   4.1 開源爬蟲   ? DataparkSearch是一個(gè)在GNU GPL許可下發(fā)布的爬蟲搜索引擎。   ? GNU Wget是一個(gè)在GPL許可下,使用C語言編寫的命令行式的爬蟲。它主要用于網(wǎng)絡(luò)服務(wù)器和FTP服務(wù)器的鏡像。   ? Heritrix是一個(gè)互聯(lián)網(wǎng)檔案館級(jí)的爬蟲,設(shè)計(jì)的目標(biāo)為對(duì)大型網(wǎng)絡(luò)的大部分內(nèi)容的定期存檔快照,是使用java編寫的。   ? Ht://Dig在它和索引引擎中包括了一個(gè)網(wǎng)頁爬蟲。   ? HTTrack用網(wǎng)絡(luò)爬蟲創(chuàng)建網(wǎng)絡(luò)站點(diǎn)鏡像,以便離線觀看。它使用C語言編寫,在GPL許可下發(fā)行。   ? ICDL Crawler是一個(gè)用C++編寫,跨平臺(tái)的網(wǎng)絡(luò)爬蟲。它僅僅使用空閑的CPU資源,在ICDL標(biāo)準(zhǔn)上抓取整個(gè)站點(diǎn)。   ? JSpider是一個(gè)在GPL許可下發(fā)行的,高度可配置的,可定制的網(wǎng)絡(luò)爬蟲引擎。   ? LLarbin由Sebastien Ailleret開發(fā);   ? Webtools4larbin由Andreas Beder開發(fā);   ? Methabot是一個(gè)使用C語言編寫的高速優(yōu)化的,使用命令行方式運(yùn)行的,在2-clause BSD許可下發(fā)布的網(wǎng)頁檢索器。它的主要的特性是高可配置性,模塊化;它檢索的目標(biāo)可以是本地文件系統(tǒng),HTTP或者FTP。   ? Nutch是一個(gè)使用java編寫,在Apache許可下發(fā)行的爬蟲。它可以用來連接Lucene的全文檢索套件;   ? Pavuk是一個(gè)在GPL許可下發(fā)行的,使用命令行的WEB站點(diǎn)鏡像工具,可以選擇使用X11的圖形界面。與wget和httprack相比,他有一系列先進(jìn)的特性,如以正則表達(dá)式為基礎(chǔ)的文件過濾規(guī)則和文件創(chuàng)建規(guī)則。   ? WebVac是斯坦福WebBase項(xiàng)目使用的一個(gè)爬蟲。   ? WebSPHINX(Miller and Bharat, 1998)是一個(gè)由java類庫(kù)構(gòu)成的,基于文本的搜索引擎。它使用多線程進(jìn)行網(wǎng)頁檢索,html解析,擁有一個(gè)圖形用戶界面用來設(shè)置開始的種子URL和抽取下載的數(shù)據(jù);   ? WIRE-網(wǎng)絡(luò)信息檢索環(huán)境(Baeza-Yates 和 Castillo, 2002)是一個(gè)使用C++編寫,在GPL許可下發(fā)行的爬蟲,內(nèi)置了幾種頁面下載安排的策略,還有一個(gè)生成報(bào)告和統(tǒng)計(jì)資料的模塊,所以,它主要用于網(wǎng)絡(luò)特征的描述;   ? LWP:RobotUA(Langheinrich,2004)是一個(gè)在Perl5許可下發(fā)行的,可以優(yōu)異的完成并行任務(wù)的 Perl類庫(kù)構(gòu)成的機(jī)器人。   ? Web Crawler是一個(gè)為.net準(zhǔn)備的開放源代碼的網(wǎng)絡(luò)檢索器(C#編寫)。   ? Sherlock Holmes收集和檢索本地和網(wǎng)絡(luò)上的文本類數(shù)據(jù)(文本文件,網(wǎng)頁),該項(xiàng)目由捷克門戶網(wǎng)站中樞(Czech web portal Centrum)贊助并且主用商用于這里;它同時(shí)也使用在Onet.pl。   ? YaCy是一個(gè)基于P2P網(wǎng)絡(luò)的免費(fèi)的分布式搜索引擎(在GPL許可下發(fā)行);   ? Ruya是一個(gè)在廣度優(yōu)先方面表現(xiàn)優(yōu)秀,基于等級(jí)抓取的開放源代碼的網(wǎng)絡(luò)爬蟲。在英語和日語頁面的抓取表現(xiàn)良好,它在GPL許可下發(fā)行,并且完全使用Python編寫。按照robots.txt有一個(gè)延時(shí)的單網(wǎng)域延時(shí)爬蟲。   ? Universal Information Crawler快速發(fā)展的網(wǎng)絡(luò)爬蟲,用于檢索存儲(chǔ)和分析數(shù)據(jù);   ? Agent Kernel,當(dāng)一個(gè)爬蟲抓取時(shí),用來進(jìn)行安排,并發(fā)和存儲(chǔ)的java框架。   ? Arachnod.net是一個(gè)使用C#編寫,需要SQL Server 2005支持的,在GPL許可下發(fā)行的多功能的開源的機(jī)器人。它可以用來下載,檢索,存儲(chǔ)包括電子郵件地址,文件,超鏈接,圖片和網(wǎng)頁在內(nèi)的各種數(shù)據(jù)。   ? Dine是一個(gè)多線程的java的http客戶端。它可以在LGPL許可下進(jìn)行二次開發(fā)。   網(wǎng)絡(luò)爬蟲的組成   在網(wǎng)絡(luò)爬蟲的系統(tǒng)框架中,主過程由控制器,解析器,資源庫(kù)三部分組成。控制器的主要工作是負(fù)責(zé)給多線程中的各個(gè)爬蟲線程分配工作任務(wù)。解析器的主要工作是下載網(wǎng)頁,進(jìn)行頁面的處理,主要是將一些JS腳本標(biāo)簽、CSS代碼內(nèi)容、空格字符、HTML標(biāo)簽等內(nèi)容處理掉,爬蟲的基本工作是由解析器完成。資源庫(kù)是用來存放下載到的網(wǎng)頁資源,一般都采用大型的數(shù)據(jù)庫(kù)存儲(chǔ),如Oracle數(shù)據(jù)庫(kù),并對(duì)其建立索引。   控制器   控制器是網(wǎng)絡(luò)爬蟲的中央控制器,它主要是負(fù)責(zé)根據(jù)系統(tǒng)傳過來的URL鏈接,分配一線程,然后啟動(dòng)線程調(diào)用爬蟲爬取網(wǎng)頁的過程。   解析器   解析器是負(fù)責(zé)網(wǎng)絡(luò)爬蟲的主要部分,其負(fù)責(zé)的工作主要有:下載網(wǎng)頁的功能,對(duì)網(wǎng)頁的文本進(jìn)行處理,如過濾功能,抽取特殊HTML標(biāo)簽的功能,分析數(shù)據(jù)功能。   資源庫(kù)   主要是用來存儲(chǔ)網(wǎng)頁中下載下來的數(shù)據(jù)記錄的容器,并提供生成索引的目標(biāo)源。中大型的數(shù)據(jù)庫(kù)產(chǎn)品有:Oracle、Sql Server等。 開放分類:
網(wǎng)絡(luò),搜索引擎,計(jì)算機(jī),蜘蛛,網(wǎng)絡(luò)爬蟲
我來完善“網(wǎng)絡(luò)爬蟲”相關(guān)詞條:
網(wǎng)絡(luò)蜘蛛

百度百科中的詞條內(nèi)容僅供參考,如果您需要解決具體問題(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。

615本詞條對(duì)我有幫助 添加到搜藏 更多 合作編輯者
劉昕葆?,silenczq?,籍曉婧?,江南紫2012?,136899184?,duweijia1991?,lc92324?,jyjzly 更多 如果您認(rèn)為本詞條還需進(jìn)一步完善,百科歡迎您也來參與編輯詞條在開始編輯前,您還可以先學(xué)習(xí)如何編輯詞條

如想投訴,請(qǐng)到百度百科投訴中心;如想提出意見、建議,請(qǐng)到百度百科吧。

詞條統(tǒng)計(jì)

瀏覽次數(shù):約?152667?次?
編輯次數(shù):20次?歷史版本?
最近更新:2012-02-28?
創(chuàng)建者:liyuanqing

更多貢獻(xiàn)光榮榜

data_40 神仙小伴侶A
辛勤貢獻(xiàn)者:
? ??版本
? ??版本
最新動(dòng)態(tài)
百科數(shù)字博物館
百科消息
百科新手指南助你做知識(shí)達(dá)人
Android版手機(jī)百科暢讀體驗(yàn)
百度百科分類管理員首頁
大學(xué)生們快來加入知識(shí)先鋒
百科航海日志-船長(zhǎng)分享成長(zhǎng)點(diǎn)滴
百度身邊京城甜品店完全攻略
推廣鏈接 網(wǎng)絡(luò)神采 讓網(wǎng)絡(luò)爬蟲出神..
網(wǎng)絡(luò)神采 最專業(yè)的網(wǎng)站信息網(wǎng)絡(luò)爬蟲軟件規(guī)則靈活,從任何類型的..
sensite.yqjk.com/bget/

? 2012 Baidu?使用百度前必讀?|?百科協(xié)議?|?百度百科合作平臺(tái)

總結(jié)

以上是生活随笔為你收集整理的什么是网络爬虫的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。