網絡爬蟲工作原理

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

相對於通用網絡爬蟲,聚焦爬蟲還需要解決三個主要問題:
(1) 對抓取目標的描述或定義;
(2) 對網頁或數據的分析與過濾;
(3) 對URL的搜索策略。
抓取目標的描述和定義是決定網頁分析算法與URL搜索策略如何制訂的基礎。而網頁分析算法和候選URL排序算法是決定搜索引擎所提供的服務形式和爬蟲網頁抓取行爲的關鍵所在。這兩個部分的算法又是緊密相關的。

2 抓取目標描述
現有聚焦爬蟲對抓取目標的描述可分爲基於目標網頁特徵、基於目標數據模式和基於領域概念3種。
基於目標網頁特徵的爬蟲所抓取、存儲並索引的對象一般爲網站或網頁。根據種子樣本獲取方式可分爲:
(1) 預先給定的初始抓取種子樣本;
(2) 預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如Yahoo!分類結構等;
(3) 通過用戶行爲確定的抓取目標樣例,分爲:
a) 用戶瀏覽過程中顯示標註的抓取樣本;
b) 通過用戶日誌挖掘得到訪問模式及相關樣本。
其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈接結構特徵,等等。
現有的聚焦爬蟲對抓取目標的描述或定義可以分爲基於目標網頁特徵,基於目標數據模式和基於領域概念三種。
基於目標網頁特徵的爬蟲所抓取、存儲並索引的對象一般爲網站或網頁。具體的方法根據種子樣本的獲取方式可以分爲:(1)預先給定的初始抓取種子樣 本;(2)預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如Yahoo!分類結構等;(3)通過用戶行爲確定的抓取目標樣例。其中,網頁特徵可以是 網頁的內容特徵,也可以是網頁的鏈接結構特徵,等等。

基於目標數據模式的爬蟲針對的是網頁上的數據,所抓取的數據一般要符合一定的模式,或者可以轉化或映射爲目標數據模式。

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

3 網頁搜索策略
網頁的抓取策略可以分爲深度優先、廣度優先和最佳優先三種。深度優先在很多情況下會導致爬蟲的陷入(trapped)問題,目前常見的是廣度優先和最佳優先方法。
3.1 廣度優先搜索策略
廣度優先搜索策略是指在抓取過程中,在完成當前層次的搜索後,才進行下一層次的搜索。該算法的設計和實現相對簡單。在目前爲覆蓋儘可能多的網頁, 一般使用廣度優先搜索方法。也有很多研究將廣度優先搜索策略應用於聚焦爬蟲中。其基本思想是認爲與初始URL在一定鏈接距離內的網頁具有主題相關性的概率 很大。另外一種方法是將廣度優先搜索與網頁過濾技術結合使用,先用廣度優先策略抓取網頁,再將其中無關的網頁過濾掉。這些方法的缺點在於,隨着抓取網頁的 增多,大量的無關網頁將被下載並過濾,算法的效率將變低。

3.2 最佳優先搜索策略
最佳優先搜索策略按照一定的網頁分析算法,預測候選URL與目標網頁的相似度,或與主題的相關性,並選取評價最好的一個或幾個URL進行抓取。它 只訪問經過網頁分析算法預測爲“有用”的網頁。存在的一個問題是,在爬蟲抓取路徑上的很多相關網頁可能被忽略,因爲最佳優先策略是一種局部最優搜索算法。 因此需要將最佳優先結合具體的應用進行改進,以跳出局部最優點。將在第4節中結合網頁分析算法作具體的討論。研究表明,這樣的閉環調整可以將無關網頁數量 降低30%~90%。

4 網頁分析算法

網頁分析算法可以歸納爲基於網絡拓撲、基於網頁內容和基於用戶訪問行爲三種類型。
4.1 基於網絡拓撲的分析算法
基於網頁之間的鏈接,通過已知的網頁或數據,來對與其有直接或間接鏈接關係的對象(可以是網頁或網站等)作出評價的算法。又分爲網頁粒度、網站粒度和網頁塊粒度這三種。
4.1.1 網頁(Webpage)粒度的分析算法
PageRank和HITS算法是最常見的鏈接分析算法,兩者都是通過對網頁間鏈接度的遞歸和規範化計算,得到每個網頁的重要度評價。 PageRank算法雖然考慮了用戶訪問行爲的隨機性和Sink網頁的存在,但忽略了絕大多數用戶訪問時帶有目的性,即網頁和鏈接與查詢主題的相關性。針 對這個問題,HITS算法提出了兩個關鍵的概念:權威型網頁(authority)和中心型網頁(hub)。

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

4.1.2 網站粒度的分析算法
網站粒度的資源發現和管理策略也比網頁粒度的更簡單有效。網站粒度的爬蟲抓取的關鍵之處在於站點的劃分和站點等級(SiteRank)的計算。 SiteRank的計算方法與PageRank類似,但是需要對網站之間的鏈接作一定程度抽象,並在一定的模型下計算鏈接的權重。
網站劃分情況分爲按域名劃分和按IP地址劃分兩種。文獻[18]討論了在分佈式情況下,通過對同一個域名下不同主機、服務器的IP地址進行站 點劃分,構造站點圖,利用類似PageRank的方法評價SiteRank。同時,根據不同文件在各個站點上的分佈情況,構造文檔圖,結合 SiteRank分佈式計算得到DocRank。文獻[18]證明,利用分佈式的SiteRank計算,不僅大大降低了單機站點的算法代價,而且克服了單 獨站點對整個網絡覆蓋率有限的缺點。附帶的一個優點是,常見PageRank 造假難以對SiteRank進行欺騙。
4.1.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算法,並通過實驗證明,效率和準確率都比傳統的對應算法要好。
4.2 基於網頁內容的網頁分析算法
基於網頁內容的分析算法指的是利用網頁內容(文本、數據等資源)特徵進行的網頁評價。網頁的內容從原來的以超文本爲主,發展到後來動態頁面(或稱 爲Hidden Web)數據爲主,後者的數據量約爲直接可見頁面數據(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒體數據、Web Service等各種網絡資源形式也日益豐富。因此,基於網頁內容的分析算法也從原來的較爲單純的文本檢索方法,發展爲涵蓋網頁數據抽取、機器學習、數據 挖掘、語義理解等多種方法的綜合應用。本節根據網頁數據形式的不同,將基於網頁內容的分析算法,歸納以下三類:第一種針對以文本和超鏈接爲主的無結構或結 構很簡單的網頁;第二種針對從結構化的數據源(如RDBMS)動態生成的頁面,其數據不能直接批量訪問;第三種針對的數據界於第一和第二類數據之間,具有 較好的結構,顯示遵循一定模式或風格,且可以直接訪問。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章