天天看點

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——1.4 網絡爬蟲的類型

本節書摘來自華章出版社《精通python網絡爬蟲:核心技術、架構與項目實戰》一書中的第1章,第1.4節,作者 韋 玮,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

現在我們已經基本了解了網絡爬蟲的組成,那麼網絡爬蟲具體有哪些類型呢?

網絡爬蟲按照實作的技術和結構可以分為通用網絡爬蟲、聚焦網絡爬蟲、增量式網絡爬蟲、深層網絡爬蟲等類型。在實際的網絡爬蟲中,通常是這幾類爬蟲的組合體。

首先我們為大家介紹通用網絡爬蟲(general purpose web crawler)。通用網絡爬蟲又叫作全網爬蟲,顧名思義,通用網絡爬蟲爬取的目标資源在全網際網路中。通用網絡爬蟲所爬取的目标資料是巨大的,并且爬行的範圍也是非常大的,正是由于其爬取的資料是海量資料,故而對于這類爬蟲來說,其爬取的性能要求是非常高的。這種網絡爬蟲主要應用于大型搜尋引擎中,有非常高的應用價值。

通用網絡爬蟲主要由初始url集合、url隊列、頁面爬行子產品、頁面分析子產品、頁面資料庫、連結過濾子產品等構成。通用網絡爬蟲在爬行的時候會采取一定的爬行政策,主要有深度優先爬行政策和廣度優先爬行政策。具體的爬行政策,我們将在第3章講解,在此,我們隻需要知道通用網絡爬蟲的基本構成和主要的爬行政策。

聚焦網絡爬蟲(focused crawler)也叫主題網絡爬蟲,顧名思義,聚焦網絡爬蟲是按照預先定義好的主題有選擇地進行網頁爬取的一種爬蟲,聚焦網絡爬蟲不像通用網絡爬蟲一樣将目标資源定位在全網際網路中,而是将爬取的目标網頁定位在與主題相關的頁面中,此時,可以大大節省爬蟲爬取時所需的帶寬資源和伺服器資源。聚焦網絡爬蟲主要應用在對特定資訊的爬取中,主要為某一類特定的人群提供服務。

聚焦網絡爬蟲主要由初始url集合、url隊列、頁面爬行子產品、頁面分析子產品、頁面資料庫、連結過濾子產品、内容評價子產品、連結評價子產品等構成。内容評價子產品可以評價内容的重要性,同理,連結評價子產品也可以評價對外連結接的重要性,然後根據連結和内容的重要性,可以确定哪些頁面優先通路。聚焦網絡爬蟲的爬行政策主要有4種,即基于内容評價的爬行政策、基于連結評價的爬行政策、基于增強學習的爬行政策和基于語境圖的爬行政策。關于聚焦網絡爬蟲具體的爬行政策,我們将在1.5節進行詳細分析。

增量式網絡爬蟲(incremental web crawler),所謂增量式,對應着增量式更新。增量式更新指的是在更新的時候隻更新改變的地方,而未改變的地方則不更新,是以增量式網絡爬蟲,在爬取網頁的時候,隻爬取内容發生變化的網頁或者新産生的網頁,對于未發生内容變化的網頁,則不會爬取。增量式網絡爬蟲在一定程度上能夠保證所爬取的頁面,盡可能是新頁面。

深層網絡爬蟲(deep web crawler),可以爬取網際網路中的深層頁面,在此我們首先需要了解深層頁面的概念。

在網際網路中,網頁按存在方式分類,可以分為表層頁面和深層頁面。所謂的表層頁面,指的是不需要送出表單,使用靜态的連結就能夠到達的靜态頁面;而深層頁面則隐藏在表單後面,不能通過靜态連結直接擷取,是需要送出一定的關鍵詞之後才能夠擷取得到的頁面。在網際網路中,深層頁面的數量往往比表層頁面的數量要多很多,故而,我們需要想辦法爬取深層頁面。

爬取深層頁面,需要想辦法自動填寫好對應表單,是以,深層網絡爬蟲最重要的部分即為表單填寫部分。

深層網絡爬蟲主要由url清單、lvs清單(lvs指的是标簽/數值集合,即填充表單的資料源)、爬行控制器、解析器、lvs控制器、表單分析器、表單處理器、響應分析器等部分構成。

深層網絡爬蟲表單的填寫有兩種類型:第一種是基于領域知識的表單填寫,簡單來說就是建立一個填寫表單的關鍵詞庫,在需要填寫的時候,根據語義分析選擇對應的關鍵詞進行填寫;第二種是基于網頁結構分析的表單填寫,簡單來說,這種填寫方式一般是領域知識有限的情況下使用,這種方式會根據網頁結構進行分析,并自動地進行表單填寫。

以上,為大家介紹了網絡爬蟲中常見的幾種類型,希望讀者能夠對網絡爬蟲的分類有一個基本的了解。