網絡爬蟲基礎

網絡爬蟲

網絡爬蟲(Computer Robot)(又被稱爲網頁蜘蛛,網絡機器人,在FOAF社區中間,更常常的稱爲網頁追逐者),是一種按照必定的規則,自動地抓取萬維網信息的程序或者腳本。另一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲web

產生背景

隨着網絡的迅速發展,萬維網成爲大量信息的載體,如何有效地提取並利用這些信息成爲一個巨大的挑戰。搜索引擎(Search Engine),例如傳統的通用搜索引擎AltaVista,Yahoo!和Google等,做爲一個輔助人們檢索信息的工具成爲用戶訪問萬維網的入口和指南。可是,這些通用性搜索引擎也存在着必定的侷限性,如:算法

(1) 不一樣領域、不一樣背景的用戶每每具備不一樣的檢索目的和需求,通用搜索引擎所返回的結果包含大量用戶不關心的網頁。數據庫

(2)通用搜索引擎的目標是儘量大的網絡覆蓋率,有限的搜索引擎服務器資源與無限的網絡數據資源之間的矛盾將進一步加深。服務器

(3)萬維網數據形式的豐富和網絡技術的不斷髮展,圖片、數據庫、音頻、視頻多媒體等不一樣數據大量出現,通用搜索引擎每每對這些信息含量密集且具備必定結構的數據無能爲力,不能很好地發現和獲取。網絡

(4)通用搜索引擎大多提供基於關鍵字的檢索,難以支持根據語義信息提出的查詢。app

網絡爬蟲機器學習

爲了解決上述問題,定向抓取相關網頁資源的聚焦爬蟲應運而生。聚焦爬蟲是一個自動下載網頁的程序,它根據既定的抓取目標,有選擇的訪問萬維網上的網頁與相關的連接,獲取所須要的信息。與通用爬蟲(general?purpose web crawler)不一樣,聚焦爬蟲並不追求大的覆蓋,而將目標定爲抓取與某一特定主題內容相關的網頁,爲面向主題的用戶查詢準備數據資源。分佈式

1 聚焦爬蟲工做原理以及關鍵技術概述工具

網絡爬蟲是一個自動提取網頁的程序,它爲搜索引擎從 萬維網上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,得到初始網頁上的URL,在抓取網頁的過程當中,不斷從當前頁面上抽 取新的URL放入隊列,直到知足系統的必定中止條件。聚焦爬蟲的工做流程較爲複雜,須要根據必定的網頁分析算法過濾與主題無關的連接,保留有用的連接並將 其放入等待抓取的URL隊列。而後,它將根據必定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重覆上述過程,直到達到系統的某一條件時中止。另 外,全部被爬蟲抓取的網頁將會被系統存貯,進行必定的分析、過濾,並創建索引,以便以後的查詢和檢索;對於聚焦爬蟲來講,這一過程所獲得的分析結果還可能 對之後的抓取過程給出反饋和指導。學習

相對於通用網絡爬蟲,聚焦爬蟲還須要解決三個主要問題:

(1) 對抓取目標的描述或定義;

(2) 對網頁或數據的分析與過濾;

(3) 對URL的搜索策略。

抓取目標的描述和定義是決定網頁分析算法與URL搜索策略如何制訂的基礎。而網頁分析算法和候選URL排序算法是決定搜索引擎所提供的服務形式和爬蟲網頁抓取行爲的關鍵所在。這兩個部分的算法又是緊密相關的。

2 抓取目標描述

現有聚焦爬蟲對抓取目標的描述可分爲基於目標網頁特徵、基於目標數據模式和基於領域概念3種。

基於目標網頁特徵的爬蟲所抓取、存儲並索引的對象通常爲網站或網頁。根據種子樣本獲取方式可分爲:

(1) 預先給定的初始抓取種子樣本;

(2) 預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如Yahoo!分類結構等;

(3) 經過用戶行爲肯定的抓取目標樣例,分爲:

(a) 用戶瀏覽過程當中顯示標註的抓取樣本;

(b) 經過用戶日誌挖掘獲得訪問模式及相關樣本。

其中,網頁特徵能夠是網頁的內容特徵,也能夠是網頁的連接結構特徵,等等。

技術研究

基於目標數據模式的爬蟲針對的是網頁上的數據,所抓取的數據通常要符合必定的模式,或者能夠轉化或映射爲目標數據模式。

另外一種描述方式是創建目標領域的本體或詞典,用於從語義角度分析不一樣特徵在某一主題中的重要程度。

網頁搜索策略

網頁的抓取策略能夠分爲深度優先、廣度優先和最佳優先三種。深度優先在不少狀況下會致使爬蟲的陷入(trapped)問題,目前常見的是廣度優先和最佳優先方法。


廣度優先搜索

廣度優先搜索策 略是指在抓取過程當中,在完成當前層次的搜索後,才進行下一層次的搜索。該算法的設計和實現相對簡單。在目前爲覆蓋儘量多的網頁,通常使用廣度優先搜索方 法。也有不少研究將廣度優先搜索策略應用於聚焦爬蟲中。其基本思想是認爲與初始URL在必定連接距離內的網頁具備主題相關性的機率很大。另一種方法是將 廣度優先搜索與網頁過濾技術結合使用,先用廣度優先策略抓取網頁,再將其中無關的網頁過濾掉。這些方法的缺點在於,隨着抓取網頁的增多,大量的無關網頁將被下載並過濾,算法的效率將變低。


最佳優先搜索

最佳優先搜索策略按照必定的網頁分析算法,預測候選URL與目標網頁的相 似度,或與主題的相關性,並選取評價最好的一個或幾個URL進行抓取。它只訪問通過網頁分析算法預測爲「有用」的網頁。存在的一個問題是,在爬蟲抓取路徑 上的不少相關網頁可能被忽略,由於最佳優先策略是一種局部最優搜索算法。所以須要將最佳優先結合具體的應用進行改進,以跳出局部最優勢。將在第4節中結合網頁分析算法做具體的討論。研究代表,這樣的閉環調整能夠將無關網頁數量下降30%~90%。


深度優先搜索

深度優先搜索策略從起始網頁開始,選擇一個URL進入,分析這個網頁中的URL,選擇一個再進入。如此一個連接一個連接地抓取下去,直處處理完一條路線以後再處理下一條路線。深度優先策略設計較爲簡單。然而門戶網站提供的連接每每最具價值,PageRank也 很高,但每深刻一層,網頁價值和PageRank都會相應地有所降低。這暗示了重要網頁一般距離種子較近,而過分深刻抓取到的網頁卻價值很低。同時,這種 策略抓取深度直接影響着抓取命中率以及抓取效率,對抓取深度是該種策略的關鍵。相對於其餘兩種策略而言。此種策略不多被使用。

網頁分析算法

網頁分析算法能夠概括爲基於網絡拓撲、基於網頁內容和基於用戶訪問行爲三種類型。


拓撲分析算法

基於網頁之間的連接,經過已知的網頁或數據,來對與其有直接或間接連接關係的對象(能夠是網頁或網站等)做出評價的算法。又分爲網頁粒度、網站粒度和網頁塊粒度這三種。

1 網頁(Webpage)粒度的分析算法

PageRank和HITS算法是最多見的連接分析算法,二者都是經過對網頁間連接度的遞歸和 規範化計算,獲得每一個網頁的重要度評價。PageRank算法雖然考慮了用戶訪問行爲的隨機性和Sink網頁的存在,但忽略了絕大多數用戶訪問時帶有目的 性,即網頁和連接與查詢主題的相關性。針對這個問題,HITS算法提出了兩個關鍵的概念:權威型網頁(authority)和中心型網頁(hub)。

基於連接的抓取的問題是相關頁面主題團之間的隧道現象,即不少在抓取路徑 上偏離主題的網頁也指向目標網頁,局部評價策略中斷了在當前路徑上的抓取行爲。文獻[21]提出了一種基於反向連接(BackLink)的分層式上下文模 型(Context Model),用於描述指向目標網頁必定物理跳數半徑內的網頁拓撲圖的中心Layer0爲目標網頁,將網頁依據指向目標網頁的物理跳數進行層次劃分,從外 層網頁指向內層網頁的連接稱爲反向連接。

2 網站粒度的分析算法

網站粒度的資源發現和管理策略也比網頁粒度的更簡單有效。網站粒度的爬蟲抓取的關鍵之處在於站點的劃分和站點等級(SiteRank)的計算。SiteRank的計算方法與PageRank相似,可是須要對網站之間的連接做必定程度抽象,並在必定的模型下計算連接的權重。

網站劃分狀況分爲按域名劃分和按IP地址劃分兩種。文獻[18]討論了在分佈式狀況下,經過對同一個域名下不一樣主機、 服務器的IP地址進行站點劃分,構造站點圖,利用相似PageRank的方法評價SiteRank。同時,根據不一樣文件在各個站點上的分佈狀況,構造文檔 圖,結合SiteRank分佈式計算獲得DocRank。文獻[18]證實,利用分佈式的SiteRank計算,不只大大下降了單機站點的算法代價,並且 克服了單獨站點對整個網絡覆蓋率有限的缺點。附帶的一個優勢是,常見PageRank 造假難以對SiteRank進行欺騙。

3 網頁塊粒度的分析算法

在一個頁面中,每每含有多個指向其餘頁面的連接,這些連接中只有一部分是指向主題相關網頁的,或根據網頁的連接錨文本表 明其具備較高重要性。可是,在PageRank和HITS算法中,沒有對這些連接做區分,所以經常給網頁分析帶來廣告等噪聲連接的干擾。在網頁塊級別 (Block?level)進行連接分析的算法的基本思想是經過VIPS網頁分割算法將網頁分爲不一樣的網頁塊(page block),而後對這些網頁塊創建page?to?block和block?to?page的連接矩陣,? 分別記爲Z和X。因而,在page?to?page圖上的網頁塊級別的PageRank爲?W?p=X×Z;?在block?to?block圖上的 BlockRank爲?W?b=Z×X。已經有人實現了塊級別的PageRank和HITS算法,並經過實驗證實,效率和準確率都比傳統的對應算法要好。


網頁分析算法

基於網頁內容的分析算法指的是利用網頁內容(文本、數據等資源)特徵進行的網頁評價。網頁的內容從原來的以超文本爲主,發展到後來動態頁面(或 稱爲Hidden Web)數據爲主,後者的數據量約爲直接可見頁面數據(PIW,Publicly Indexable Web)的400~500倍。另外一方面,多媒體數據、Web Service等各類網絡資源形式也日益豐富。所以,基於網頁內容的分析算法也從原來的較爲單純的文本檢索方法,發展爲涵蓋網頁數據抽取、機器學習、數據挖掘、語義理解等多種方法的綜合應用。本節根據網頁數據形式的不一樣,將基於網頁內容的分析算法,概括如下三類:第一種針對以文本和超連接爲主的無結構或結構很簡單的網頁;第二種針對從結構化的數據源(如RDBMS)動態生成的頁面,其數據不能直接批量訪問;第三種針對的數據界於第一和第二類數據之間,具備較好的結構,顯示遵循必定模式或風格,且能夠直接訪問。

基於文本的網頁分析算法

1) 純文本分類與聚類算法

很大程度上借用了文本檢索的技術。文本分析算法能夠快速有效的對網頁進行分類和聚類,可是因爲忽略了網頁間和網頁內部的結構信息,不多單獨使用。

2) 超文本分類和聚類算法

根據網頁連接網頁的相關類型對網頁進行分類,依靠相關聯的網頁推測該網頁的類型。

相關文章
相關標籤/搜索