相對於通用網路爬蟲,聚焦爬蟲還需要解決三個主要問題:
(1) 對抓取目標的描述或定義;
(2) 對網頁或資料的分析與過濾;
(3) 對url的搜尋策略。
抓取目標的描述和定義是決定網頁分析演算法與url搜尋策略如何制訂的基礎。而網頁分析演算法和候選url排序演算法是決定搜尋引擎所提供的服務形式和爬蟲網頁抓取行為的關鍵所在。這兩個部分的演算法又是緊密相關的。
2 抓取目標描述
現有聚焦爬蟲對抓取目標的描述可分為基於目標網頁特徵、基於目標資料模式和基於領域概念3種。
基於目標網頁特徵的爬蟲所抓取、儲存並索引的物件一般為**或網頁。根據種子樣本獲取方式可分為:
(1) 預先給定的初始抓取種子樣本;
(2) 預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如yahoo!分類結構等;
(3) 通過使用者行為確定的抓取目標樣例,分為:
a) 使用者瀏覽過程中顯示標註的抓取樣本;
b) 通過使用者日誌挖掘得到訪問模式及相關樣本。
其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈結結構特徵,等等。
現有的聚焦爬蟲對抓取目標的描述或定義可以分為基於目標網頁特徵,基於目標資料模式和基於領域概念三種。
基於目標網頁特徵的爬蟲所抓取、儲存並索引的物件一般為**或網頁。具體的方法根據種子樣本的獲取方式可以分為:(1)預先給定的初始抓取種子樣本;(2)預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如yahoo!分類結構等;(3)通過使用者行為確定的抓取目標樣例。其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈結結構特徵,等等。
基於目標資料模式的爬蟲針對的是網頁上的資料,所抓取的資料一般要符合一定的模式,或者可以轉化或對映為目標資料模式。
另一種描述方式是建立目標領域的本體或詞典,用於從語義角度分析不同特徵在某一主題中的重要程度。
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演算法中,沒有對這些鏈結作區分,因此常常給網頁分析帶來廣告等雜訊鏈結的干擾。在網頁塊級別(blocklevel)進行鏈結分析的演算法的基本思想是通過vips網頁分割演算法將網頁分為不同的網頁塊(page block),然後對這些網頁塊建立pagetoblock和blocktopage的鏈結矩陣,分別記為z和x。於是,在pagetopage圖上的網頁塊級別的pagerank為wp=x×z;在blocktoblock圖上的blockrank為wb=z×x。已經有人實現了塊級別的pagerank和hits演算法,並通過實驗證明,效率和準確率都比傳統的對應演算法要好。
4.2 基於網頁內容的網頁分析演算法
基於網頁內容的分析演算法指的是利用網頁內容(文字、資料等資源)特徵進行的網頁評價。網頁的內容從原來的以超文字為主,發展到後來動態頁面(或稱為hidden web)資料為主,後者的資料量約為直接可見頁面資料(piw,publicly indexable web)的400~500倍。另一方面,多**資料、web service等各種網路資源形式也日益豐富。因此,基於網頁內容的分析演算法也從原來的較為單純的文字檢索方法,發展為涵蓋網頁資料抽取、機器學習、資料探勘、語義理解等多種方法的綜合應用。本節根據網頁資料形式的不同,將基於網頁內容的分析演算法,歸納以下三類:第一種針對以文字和超連結為主的無結構或結構很簡單的網頁;第二種針對從結構化的資料來源(如rdbms)動態生成的頁面,其資料不能直接批量訪問;第三種針對的資料界於第一和第二類資料之間,具有較好的結構,顯示遵循一定模式或風格,且可以直接訪問。
網路爬蟲(蜘蛛)Scrapy,Python安裝!
scrapy,python安裝,使用!latest python 2 release python 2.7.6,安裝時選擇當前使用者。2 到 pywin32 219.win amd64 py2.7.exe 3 將c python27 scripts c python27 新增到環境變數裡。4 vis...
搜尋引擎蜘蛛爬蟲原理
1 聚焦爬蟲工作原理及關鍵技術概述 相對於通用網路爬蟲,聚焦爬蟲還需要解決三個主要問題 1 對抓取目標的描述或定義 2 對網頁或資料的分析與過濾 3 對url的搜尋策略。抓取目標的描述和定義是決定網頁分析演算法與url搜尋策略如何制訂的基礎。而網頁分析演算法和候選url排序演算法是決定搜尋引擎所提供...
搜尋引擎蜘蛛爬蟲原理
1 聚焦爬蟲工作原理及關鍵技術概述 相對於通用網路爬蟲,聚焦爬蟲還需要解決三個主要問題 1 對抓取目標的描述或定義 2 對網頁或資料的分析與過濾 3 對url的搜尋策略。抓取目標的描述和定義是決定網頁分析演算法與url搜尋策略如何制訂的基礎。而網頁分析演算法和候選url排序演算法是決定搜尋引擎所提供...