網絡爬蟲按照系統結構和實現技術,常見的主要有以下四類:通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲和深層網絡爬蟲。
實際的網絡爬蟲系統通常是由幾種爬蟲類型相交叉結合實現的。
1. 通用網絡爬蟲
| 概念 | 爬取目標資源在全互聯網中,爬取目標數量巨大。 |
| 性能要求 | 非常高。 |
| 應用場景 | 大型搜索引擎,有非常高的應用價值。 |
| 組成 | 由初始URL集合、URL隊列、頁面爬行模塊、頁面分析模塊、頁面數據庫、鏈接過濾模塊等構成。 |
| 爬行策略 | 主要有深度優先爬行策略和廣度優先爬行策略。 |
2. 聚焦網絡爬蟲
| 概念 | 將爬取目標定位在與主題相關的頁面中,對特定信息進行爬取。 |
| 性能要求 | - |
| 應用場景 | 主要應用在特定的信息爬出中,為某一特定的人群提供服務。 |
| 組成 | 初始URL、URL隊列、頁面爬行模塊、頁面分析模塊、頁面數據庫、鏈接過濾模塊、內容評價模塊、鏈接評價模塊。 |
| 爬行策略 | 基於內容評價的爬行策略、基於鏈接評價的爬行策略、基於增強學習的爬行策略和基於與語境圖的爬行策略。 |
3. 增量式網絡爬蟲
| 概念 | 對已下載的網頁采取增量式更新和只爬行新產生的或已經發生變化的網盤爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。 |
| 性能要求 | - |
| 特點 | 需要爬行新產生或發生更新的頁面,並不重新下載沒有發生變化的頁面。可以有效減少數據下載量、及時更新已爬行的網頁,減少時間和空間的耗費,但增加了爬行算法的復雜度和實現難度。 |
| 應用場景 | 初次爬行完成后,不斷及時更新頁面 |
| 組成 | 爬行模塊、排序模塊、更新模塊、本地頁面集、待爬行URL集及本地URL集。 |
| 爬行策略 | - |
| 常用方法 | 統一更新法、個體更新法、基於分類更新法。 |
- 統一更新法:爬蟲以相同的頻率訪問所有的網頁,不考慮網頁的改變頻率。
- 個體更新法:爬蟲根據個體網頁的改變頻率來重新訪問各個頁面。
- 基於分類的更新法:爬蟲根據網頁改變頻率將其分為更新較快網頁子集和更新較慢網頁子集兩類,然后以不同頻率范圍這兩類網頁。
4. 深層網絡爬蟲
| 概念 | 可以爬取互聯網中的深層頁面。(最重要的部分為填寫表單部分) |
| 性能要求 | - |
| 應用場景 | 大多數網頁 |
| 組成 | URL列表、LVS列表(LVS指的是標簽/數值集合,即填充表單的數據源)、爬行控制器、解析器、LVS控制器、表單分析器、表單處理器、響應分析器。 |
| 爬行策略 | - |
| 表單填寫類型 | 領域知識表單填寫、網頁結構分析表單填寫 |
4.1 互聯網中的網頁存在方式
在互聯網中,網頁按照存在方式分類,可以分為表層頁面和深層頁面。
- 表層頁面:不需要提交表單,使用靜態的鏈接就能夠到達的靜態頁面。
- 深層頁面:隱藏在表單后面,不能夠通過靜態鏈接直接獲取,需要提供一定的關鍵詞后才能獲取到的頁面。
在互聯網中,深層數量的頁面往往比表層頁面的數量多很多。
4.2 深層網絡爬蟲的表單填寫類型
深層網絡爬蟲的表單填寫類型有兩種。
- 基於領域知識的表單填寫。簡單地說,就是里一個填寫表單的關鍵詞庫,在需要填寫時,根據語義分析選擇對應的關鍵詞庫進行填寫。
- 基於網頁結構的表單填寫。簡單地說,這種填寫方式一般在領域知識有限的情況下使用,這種方式會根據網頁結構進行分析,並自動進行表單填寫。
