python 爬蟲實戰的原理

han458443967發表於2021-10-29

二、原理

功能:下載網頁資料,為搜尋引擎系統提供資料來源。元件:控制器、解析器、資源庫。

Web網路爬蟲系統首先將種子URL放入下載佇列,然後簡單地從隊首中取出一個URL下載其對應的網頁。得到網頁的內容將其儲存後,再經過解析網頁中的連結資訊可以得到一些新的URL,將這些URL加入下載佇列。然後取出一個URL,對其對應的網頁進行下載,再解析,如此反覆進行,直到遍歷了整個網路或滿足某種條件後才會停止下來。

三、爬蟲分類

1、傳統爬蟲

傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁過程中,不斷從當前頁面上抽取新的URL放入佇列,直到滿足系統的一定停止條件。

2、聚焦爬蟲

聚焦爬蟲工作流程較為複雜,需要根據一定的網頁分析演算法過濾與主題無關的連結,保留有用連結並將其放入等待抓取URL佇列。然後它將根據一定搜尋策略從佇列中選擇下一步要抓取的網頁URL,並重覆上述過程,直到達到系統某一條件時停止。另外所有被爬蟲抓取的網頁將會被系統儲存,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索。對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出反饋和指導。

3、通用網路爬蟲(全網爬蟲)

通用網路爬蟲又稱全網爬蟲, 爬行物件從一些種子URL擴充到整個Web,主要為門戶站點搜尋引擎和大型Web服務提供商採集資料。這類網路爬蟲的爬行範圍和數量巨大,對於爬行速度和儲存空間要求較高,對於爬行頁面順序要求相對較低,同時由於待重新整理頁面太多,通常採用並行工作方式,但需要較長時間才能重新整理一次頁面。雖然存在一定缺陷, 但通用網路爬蟲適用於為搜尋引擎搜尋廣泛的主題,有較強應用價值。

實際的網路爬蟲系統通常是幾種爬蟲技術相結合實現的。

四、網頁抓取策略

在爬蟲系統中,待抓取URL佇列是很重要的一部分。佇列中URL以什麼樣順序排列也是一個很重要的問題,因為這涉及先抓取哪個頁面,後抓取哪個頁面。

而決定這些URL排列順序的方法,稱之為抓取策略。

1、寬度優先搜尋:

在抓取過程中,在完成當前層次搜尋後,才進行下一層次搜尋。

優點:演算法設計和實現相對簡單。缺點:隨著抓取網頁增多,大量無關網頁將被下載並過濾,演算法效率將變低。

2、深度優先搜尋:

從起始網頁開始,選擇一個URL進入,分析這個網頁中的URL,一個連結一個連結地抓取下去,直到處理完一條路線之後再處理下一條URL中的路線。

例如,下圖中深度優先搜尋的遍歷方式時 A 到 B 到 D 到 E 到 F(ABDECF),而寬度優先搜尋的遍歷方式是 A B C D E F 。

相關文章