網絡爬蟲按照系統結構和實現技術,大致可以分為以下幾種類型:通用網絡爬蟲(General Purpose Web Crawler)、聚焦網絡爬蟲(Focused Web Crawler)、增量式網絡爬蟲(Incremental Web Crawler)、深層網絡爬蟲(Deep Web Crawler)。 實際的網絡爬蟲系統通常是幾種爬蟲技術相結合實現的。
### 通用網絡爬蟲
通用網絡爬蟲又稱全網爬蟲(Scalable Web Crawler),爬行對象從一些種子 URL擴充到整個Web,主要為門戶站點搜索引擎和大型 Web 服務提供商采集數據。 由于商業原因,它們的技術細節很少公布出來。這類網絡爬蟲的爬行范圍和數量巨大,對于爬行速度和存儲空間要求較高,對于爬行頁面的順序要求相對較低,同時由于待刷新的頁面太多,通常采用并行工作方式,但需要較長時間才能刷新一次頁面。 雖然存在一定缺陷,通用網絡爬蟲適用于為搜索引擎搜索廣泛的主題,有較強的應用價值。通用網絡爬蟲的結構大致可以分為頁面爬行模塊 、頁面分析模塊、鏈接過濾模塊、頁面數據庫、URL 隊列、初始 URL 集合幾個部分。為提高工作效率,通用網絡爬蟲會采取一定的爬行策略。
### 聚焦網絡爬蟲
聚焦網絡爬蟲(Focused Crawler),又稱主題網絡爬蟲(Topical Crawler),是指選擇性地爬行那些與預先定義好的主題相關頁面的網絡爬蟲。 和通用網絡爬蟲相比,聚焦爬蟲只需要爬行與主題相關的頁面,極大地節省了硬件和網絡資源,保存的頁面也由于數量少而更新快,還可以很好地滿足一些特定人群對特定領域信息的需求。
聚焦網絡爬蟲和通用網絡爬蟲相比,增加了鏈接評價模塊以及內容評價模塊。聚焦爬蟲爬行策略實現的關鍵是評價頁面內容和鏈接的重要性,不同的方法計算出的重要性不同,由此導致鏈接的訪問順序也不同。
該爬蟲對主題的定義既不是采用關鍵詞也不是加權矢量,而是一組具有相同主題的網頁。 它包含兩個重要模塊:一個是分類器,用來計算所爬行的頁面與主題的相關度,確定是否與主題相關;另一個是凈化器,用來識別通過較少鏈接連接到大量相關頁面的中心頁面。
### 增量式網絡爬蟲
增量式網絡爬蟲(Incremental Web Crawler)是 指 對 已 下 載 網 頁 采 取 增 量式更新和只爬行新產生的或者已經發生變化網頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。 和周期性爬行和刷新頁面的網絡爬蟲相比,增量式爬蟲只會在需要的時候爬行新產生或發生更新的頁面 ,并不重新下載沒有發生變化的頁面,可有效減少數據下載量,及時更新已爬行的網頁,減小時間和空間上的耗費,但是增加了爬行算法的復雜度和實現難度。增量式網絡爬蟲的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁面集、待爬行 URL 集以及本地頁面URL 集[1] 。
增量式爬蟲有兩個目標:保持本地頁面集中存儲的頁面為最新頁面和提高本地頁面集中頁面的質量。為緩解對大量網頁變化歷史維護導致的性能瓶頸,它根據網頁變化時間局部性規律,在短時期內直接爬行多次變化的網頁 ,為盡快獲取新網頁,它利用索引型網頁跟蹤新出現網頁。
### Deep Web 爬蟲
Web 頁面按存在方式可以分為表層網頁和深層網頁。 表層網頁是指傳統搜索引擎可以索引的頁面,以超鏈接可以到達的靜態網頁為主構成的 Web 頁面。Deep Web 是那些大部分內容不能通過靜態鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關鍵詞才能獲得的 Web 頁面。例如那些用戶注冊后內容才可見的網頁就屬于 Deep Web。