- Python網絡爬蟲技術(第2版·微課版)
- 池瑞楠 張良均主編
- 2042字
- 2023-11-16 17:59:25
1.1.2 爬蟲的分類
網絡爬蟲按照其系統結構和運作原理,大致可以分為4種:通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲和深層網絡爬蟲。
1.通用網絡爬蟲
通用網絡爬蟲又稱全網爬蟲,其爬取對象可由一批種子URL擴充至Web,主要由搜索引擎或大型Web服務提供商使用。通用網絡爬蟲的爬取范圍和數量都非常大,其對于爬取速度及存儲空間的要求都比較高,而對于爬取頁面的順序要求比較低。通用網絡爬蟲通常采用并行工作的方式來應對大量的待刷新頁面。
通用網絡爬蟲比較適合為搜索引擎搜索廣泛的主題,常用的爬取策略可分為以下兩種。
(1)深度優先策略
該策略的基本方法是按照深度由低到高的順序,依次訪問網頁鏈接,直到無法再深入為止。在完成一個爬取分支后,返回上一節點搜索其他鏈接進行訪問,當遍歷完全部鏈接后,爬取過程結束。深度優先策略比較適合垂直搜索或站內搜索,其缺點是當爬取層次較深的站點時會造成巨大的資源浪費。
(2)廣度優先策略
該策略按照網頁內容目錄層次的深淺進行爬取,優先爬取較淺層次的頁面。當同一層中的頁面全部爬取完畢后,再深入下一層。相較于深度優先策略,廣度優先策略能更有效地控制頁面爬取的深度,避免當遇到一個無窮深層次的分支時無法結束爬取的問題。廣度優先策略不需要存儲大量的中間節點,但其缺點是需要較長時間才能爬取到目錄層次較深的頁面。
2.聚焦網絡爬蟲
聚焦網絡爬蟲又被稱作主題網絡爬蟲,其最大的特點是選擇性地爬取與預設主題相關的頁面。與通用網絡爬蟲相比,聚焦網絡爬蟲僅需爬取與主題相關的頁面,極大地節省了硬件資源和網絡資源,能更快地更新保存的頁面,更好地滿足特定人群對特定領域信息的需求。
按照頁面內容和鏈接的重要性評價,聚焦網絡爬蟲的爬取策略可分為以下4種。
(1)基于內容評價的爬取策略
該策略將用戶輸入的查詢詞作為主題,包含查詢詞的頁面被視為與主題相關的頁面。
(2)基于鏈接結構評價的爬取策略
該策略將包含很多結構信息的半結構化文檔(如Web頁面)用于評價鏈接的重要性。其中,一種被廣泛使用的算法為PageRank(頁面排序)算法。該算法可用于排序搜索引擎信息檢索的查詢結果,也可用于評價鏈接重要性,其每次選擇PageRank值較大頁面中的鏈接進行訪問。
(3)基于增強學習的爬取策略
該策略將增強學習引入聚焦網絡爬蟲,利用貝葉斯分類器基于整個網頁文本和鏈接文本來對超鏈接進行分類,計算每個鏈接的重要性,按照重要性決定鏈接的訪問順序。
(4)基于語境圖的爬取策略
該策略通過建立語境圖來學習網頁之間的相關度,具體方法為:計算當前頁面到相關頁面的距離,距離越近的頁面中的鏈接越被優先訪問。
3.增量式網絡爬蟲
增量式網絡爬蟲只對已下載網頁采取增量式更新,或只爬取新產生的、已經發生變化的網頁,這種機制能夠在某種程度上保證所爬取的頁面盡可能新。與其他周期性爬取和刷新頁面的網絡爬蟲相比,增量式網絡爬蟲僅在需要的時候爬取新產生的或有更新的頁面,而沒有變化的頁面則不進行爬取,能有效地減少數據下載量,并及時更新已爬取過的網頁,可減少時間和存儲空間上的浪費,但此類爬蟲的算法的復雜度和實現難度更高。
增量式網絡爬蟲需要通過重新訪問網頁來對本地頁面進行更新,從而保持本地集中存儲的頁面為最新頁面,常用的方法有以下3種。
(1)統一更新法
爬蟲以相同的頻率訪問所有網頁,不受網頁本身的改變頻率的影響。
(2)個體更新法
爬蟲根據單個網頁的改變頻率來決定重新訪問各頁面的頻率。
(3)基于分類的更新法
爬蟲按照網頁變化頻率將網頁分為更新較快的網頁和更新較慢的網頁,并分別設定不同的頻率來訪問這兩類網頁。
為保證本地集中頁面的質量,增量式網絡爬蟲需要對網頁的重要性進行排序,常用的策略有廣度優先策略和PageRank優先策略。其中,廣度優先策略按照頁面的深度層次進行排序,PageRank優先策略按照頁面的PageRank值進行排序。
4.深層網絡爬蟲
Web頁面按照存在方式可以分為表層頁面和深層頁面兩類。表層頁面是指傳統搜索引擎可以索引到的頁面,以通過超鏈接可以到達的靜態頁面為主。深層頁面是指大部分內容無法通過靜態鏈接獲取,隱藏在搜索表單后的,需要用戶提交關鍵詞后才能獲得的Web頁面,如登錄后可見的網頁。在深層頁面中,可訪問的信息量為表層頁面的幾百倍。深層頁面是目前互聯網上發展最快、最大的新型信息資源。
在深層網絡爬蟲爬取數據的過程中,最重要的部分就是表單填寫。表單填寫主要包含以下兩種方法。
(1)基于領域知識的表單填寫
該方法一般會維持一個本體庫,并通過語義分析來選取合適的關鍵詞填寫表單。通過將表單按語義分配至各組中,從多方面對每組進行注解,并結合各組注解結果預測最終的注解標簽。基于領域知識的表單填寫方法也可以利用一個預定義的領域本體知識庫來識別深層頁面的內容,并利用來自Web站點的導航模式識別當自動填寫表單時所需進行的路徑導航。
(2)基于網頁結構分析的表單填寫
該方法一般無領域知識或僅有有限的領域知識,其將超文本標記語言(Hypertext Markup Language,HTML)網頁表示為文檔對象模型(Document Object Model,DOM)樹形式,將表單區分為單屬性表單和多屬性表單,并分別進行處理,從DOM樹中提取表單各字段值。