網路爬蟲按照系統結構和實現技術,大致可以分為以下幾種型別:通用網路爬蟲(general purpose web crawler)、聚焦網路爬蟲(focused web crawler)、增量式網路爬蟲(incremental web crawler)、深層網路爬蟲(deep web crawler)。 實際的網路爬蟲系統通常是幾種爬蟲技術相結合實現的。
通用網路爬蟲
通用網路爬蟲又稱全網爬蟲(scalable web crawler),爬行物件從一些種子 url 擴充到整個 web,主要為門戶站點搜尋引擎和大型 web 服務提供商採集資料。 由於商業原因,它們的技術細節很少公布出來。 這類網路爬蟲的爬行範圍和數量巨大,對於爬行速度和儲存空間要求較高,對於爬行頁面的順序要求相對較低,同時由於待重新整理的頁面太多,通常採用並行工作方式,但需要較長時間才能重新整理一次頁面。 雖然存在一定缺陷,通用網路爬蟲適用於為搜尋引擎搜尋廣泛的主題,有較強的應用價值。
通用網路爬蟲的結構大致可以分為頁面爬行模組 、頁面分析模組、鏈結過濾模組、頁面資料庫、url 佇列、初始 url 集合幾個部分。為提高工作效率,通用網路爬蟲會採取一定的爬行策略。 常用的爬行策略有:深度優先策略、廣度優先策略。
2) 廣度優先策略:此策略按照網頁內容目錄層次深淺來爬行頁面,處於較淺目錄層次的頁面首先被爬行。 當同一層次中的頁面爬行完畢後,爬蟲再深入下一層繼續爬行。 這種策略能夠有效控制頁面的爬行深度,避免遇到乙個無窮深層分支時無法結束爬行的問題,實現方便,無需儲存大量中間節點,不足之處在於需較長時間才能爬行到目錄層次較深的頁面。
聚焦網路爬蟲
聚焦網路爬蟲(focused crawler),又稱主題網路爬蟲(topical crawler),是指選擇性地爬行那些與預先定義好的主題相關頁面的網路爬蟲[8]。 和通用網路爬蟲相比,聚焦爬蟲只需要爬行與主題相關的頁面,極大地節省了硬體和網路資源,儲存的頁面也由於數量少而更新快,還可以很好地滿足一些特定人群對特定領域資訊的需求。
聚焦網路爬蟲和通用網路爬蟲相比,增加了鏈結評價模組以及內容評價模組。聚焦爬蟲爬行策略實現的關鍵是評價頁面內容和鏈結的重要性,不同的方法計算出的重要性不同,由此導致鏈結的訪問順序也不同。
1) 基於內容評價的爬行策略:debra將文字相似度的計算方法引入到網路爬蟲中,提出了 fish search 演算法,它將使用者輸入的查詢詞作為主題,包含查詢詞的頁面被視為與主題相關,其侷限性在於無法評價頁面與主題相關 度 的 高 低 。 herseovic對 fish search 算 法 進 行 了 改 進 ,提 出 了 sharksearch 演算法,利用空間向量模型計算頁面與主題的相關度大小。
2) 基於鏈結結構評價的爬行策略 :web 頁面作為一種半結構化文件,包含很多結構資訊,可用來評價鏈結重要性。 pagerank 演算法最初用於搜尋引擎資訊檢索中對查詢結果進行排序,也可用於評價鏈結重要性,具體做法就是每次選擇 pagerank 值較大頁面中的鏈結來訪問。 另乙個利用 web結構評價鏈結價值的方法是 hits 方法,它通過計算每個已訪問頁面的 authority 權重和 hub 權重,並以此決定鏈結的訪問順序。
3) 基於增強學習的爬行策略:rennie 和 mccallum 將增強學習引入聚焦爬蟲,利用貝葉斯分類器,根據整個網頁文字和鏈結文字對超連結進行分類,為每個鏈結計算出重要性,從而決定鏈結的訪問順序。
增量式網路爬蟲
增量式爬蟲有兩個目標:保持本地頁面集中儲存的頁面為最新頁面和提高本地頁面集中頁面的質量。 為實現第乙個目標,增量式爬蟲需要通過重新訪問網頁來更新本地頁面集中頁面內容,常用的方法有:1) 統一更新法:爬蟲以相同的頻率訪問所有網頁,不考慮網頁的改變頻率;2) 個體更新法:爬蟲根據個體網頁的改變頻率來重新訪問各頁面;3) 基於分類的更新法:爬蟲根據網頁改變頻率將其分為更新較快網頁子集和更新較慢網頁子集兩類,然後以不同的頻率訪問這兩類網頁。
為實現第二個目標,增量式爬蟲需要對網頁的重要性排序,常用的策略有:廣度優先策略、pagerank 優先策略等。ibm 開發的 webfountain是乙個功能強大的增量式網路爬蟲,它採用乙個優化模型控制爬行過程,並沒有對頁面變化過程做任何統計假設,而是採用一種自適應的方法根據先前爬行週期裡爬行結果和網頁實際變化速度對頁面更新頻率進行調整。北京大學的天網增量爬行系統旨在爬行國內 web,將網頁分為變化網頁和新網頁兩類,分別採用不同爬行策略。 為緩解對大量網頁變化歷史維護導致的效能瓶頸,它根據網頁變化時間區域性性規律,在短時期內直接爬行多次變化的網頁 ,為盡快獲取新網頁,它利用索引型網頁跟蹤新出現網頁。
deep web 爬蟲
deep web 爬蟲體系結構包含六個基本功能模組 (爬行控制器、解析器、表單分析器、表單處理器、響應分析器、lvs 控制器)和兩個爬蟲內部資料結構(url 列表、lvs 表)。 其中 lvs(label value set)表示標籤/數值集合,用來表示填充表單的資料來源。
deep web 爬蟲爬行過程中最重要部分就是表單填寫,包含兩種型別:
2) 基於網頁結構分析的表單填寫: 此方法一般無領域知識或僅有有限的領域知識,將網頁表單表示成 dom 樹,從中提取表單各字段值。 desouky 等人提出一種 lehw 方法,該方法將 html 網頁表示為dom 樹形式,將表單區分為單屬性表單和多屬性表單,分別進行處理;孫彬等人提出一種基於 xquery 的搜尋系統,它能夠模擬表單和特殊頁面標記切換,把網頁關鍵字切換資訊描述為三元組單元,按照一定規則排除無效表單,將 web 文件構造成 dom 樹,利用 xquery 將文字屬性對映到表單字段。
抓取目標分類
抓取目標的描述和定義是決定網頁分析演算法與url搜尋策略如何制訂的基礎。而網頁分析演算法和候選url排序演算法是決定搜尋引擎所提供的服務形式和爬蟲網頁抓取行為的關鍵所在。這兩個部分的演算法又是緊密相關的。
現有聚焦爬蟲對抓取目標的描述可分為基於目標網頁特徵、基於目標資料模式和基於領域概念3種。
基於目標網頁特徵
(1) 預先給定的初始抓取種子樣本;
(2) 預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如yahoo!分類結構等;
(3) 通過使用者行為確定的抓取目標樣例,分為:
(a) 使用者瀏覽過程中顯示標註的抓取樣本;
(b) 通過使用者日誌挖掘得到訪問模式及相關樣本。
其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈結結構特徵,等等。
基於目標資料模式
基於目標資料模式的爬蟲針對的是網頁上的資料,所抓取的資料一般要符合一定的模式,或者可以轉化或對映為目標資料模式。
基於領域概念
另一種描述方式是建立目標領域的本體或詞典,用於從語義角度分析不同特徵在某一主題中的重要程度。
最佳優先搜尋策略按照一定的網頁分析演算法,**候選url與目標網頁的相似度,或與主題的相關性,並選取評價最好的乙個或幾個url進行抓取。它只訪問經過網頁分析演算法**為「有用」的網頁。存在的乙個問題是,在爬蟲抓取路徑上的很多相關網頁可能被忽略,因為最佳優先策略是一種區域性最優搜尋演算法。因此需要將最佳優先結合具體的應用進行改進,以跳出區域性最優點。將在第4節中結合網頁分析演算法作具體的討論。研究表明,這樣的閉環調整可以將無關網頁數量降低30%~90%。
深度優先搜尋策略從起始網頁開始,選擇乙個url進入,分析這個網頁中的url,選擇乙個再進入。如此乙個鏈結乙個鏈結地抓取下去,直到處理完一條路線之後再處理下一條路線。深度優先策略設計較為簡單。然而門戶**提供的鏈結往往最具價值,pagerank也很高,但每深入一層,網頁價值和pagerank都會相應地有所下降。這暗示了重要網頁通常距離種子較近,而過度深入抓取到的網頁卻價值很低。同時,這種策略抓取深度直接影響著抓取命中率以及抓取效率,對抓取深度是該種策略的關鍵。相對於其他兩種策略而言。此種策略很少被使用。
實際的網路爬蟲系統通常是幾種爬蟲技術相結合實現的。
網路爬蟲按照系統結構和實現技術,大致可以分為以下幾種型別 通用網路爬蟲 general purpose web crawler 聚焦網路爬蟲 focused web crawler 增量式網路爬蟲 incremental web crawler 深層網路爬蟲 deep web crawler 實際的...
簡述網路爬蟲的系統實現
網路爬蟲常常被人所忽略,特別是和搜尋引擎的光環相比,它似乎有些暗淡無光。我很少看見有詳細介紹爬蟲實現的文章或者文件。然而,爬蟲其實是非常重要的乙個系統,特別是在今天這個資料為王的時代。如果你是乙個剛剛開始的公司或者專案,沒有任何原始的資料積累,那麼通過爬蟲去internet上找到那些有價值的資料再進...
簡述網路爬蟲的系統實現
網路爬蟲常常被人所忽略,特別是和搜尋引擎的光環相比,它似乎有些暗淡無光。我很少看見有詳細介紹爬蟲實現的文章或者文件。然而,爬蟲其實是非常重要的乙個系統,特別是在今天這個資料為王的時代。如果你是乙個剛剛開始的公司或者專案,沒有任何原始的資料積累,那麼通過爬蟲去internet上找到那些有價值的資料再進...