1. 程式人生 > >網路爬蟲基本工作流程和抓取策略

網路爬蟲基本工作流程和抓取策略

         網路爬蟲(又被稱為網頁蜘蛛,網路機器人,在FOAF社群中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。另外一些不常使用的名字還有螞蟻、自動索引、模擬程式或者蠕蟲。

  網路爬蟲是捜索引擎抓取系統的重要組成部分。爬蟲的主要目的是將網際網路上的網頁下載到本地形成一個或聯網內容的映象備份。這篇部落格主要對爬蟲以及抓取系統進行一個簡單的概述。

  一、網路爬蟲的基本結構及工作流程

  一個通用的網路爬蟲的框架如圖所示:

                                                                    www

  網路爬蟲的基本工作流程如下:

  1.首先選取一部分精心挑選的種子URL;

  2.將這些URL放入待抓取URL佇列;

  3.從待抓取URL佇列中取出待抓取在URL,解析DNS,並且得到主機的ip,並將URL對應的網頁下載下來,儲存進已下載網頁庫中。此外,將這些URL放進已抓取URL佇列。

  4.分析已抓取URL佇列中的URL,分析其中的其他URL,並且將URL放入待抓取URL佇列,從而進入下一個迴圈。

  二、抓取策略

  在爬蟲系統中,待抓取URL佇列是很重要的一部分。待抓取URL佇列中的URL以什麼樣的順序排列也是一個很重要的問題,因為這涉及到先抓取那個頁面,後抓取哪個頁面。而決定這些URL排列順序的方法,叫做抓取策略。下面重點介紹幾種常見的抓取策略:

  1.深度優先遍歷策略

  深度優先遍歷策略是指網路爬蟲會從起始頁開始,一個連結一個連結跟蹤下去,處理完這條線路之後再轉入下一個起始頁,繼續跟蹤連結。我們以下面的圖為例:

  遍歷的路徑:A-F-G  E-H-I B C D

  2.寬度優先遍歷策略

  寬度優先遍歷策略的基本思路是,將新下載網頁中發現的連結直接插入待抓取URL佇列的末尾。也就是指網路爬蟲會先抓取起始網頁中連結的所有網頁,然後再選擇其中的一個連結網頁,繼續抓取在此網頁中連結的所有網頁。還是以上面的圖為例:

                                                                                             www

  遍歷路徑:A-B-C-D-E-F G H I

  3.反向連結數策略

  反向連結數是指一個網頁被其他網頁連結指向的數量。反向連結數表示的是一個網頁的內容受到其他人的推薦的程度。因此,很多時候搜尋引擎的抓取系統會使用這個指標來評價網頁的重要程度,從而決定不同網頁的抓取先後順序。

  在真實的網路環境中,由於廣告連結、作弊連結的存在,反向連結數不能完全等他我那個也的重要程度。因此,搜尋引擎往往考慮一些可靠的反向連結數。

  4.Partial PageRank策略

  Partial PageRank演算法借鑑了PageRank演算法的思想:對於已經下載的網頁,連同待抓取URL佇列中的URL,形成網頁集合,計算每個頁面的PageRank值,計算完之後,將待抓取URL佇列中的URL按照PageRank值的大小排列,並按照該順序抓取頁面。

  如果每次抓取一個頁面,就重新計算PageRank值,一種折中方案是:每抓取K個頁面後,重新計算一次PageRank值。但是這種情況還會有一個問題:對於已經下載下來的頁面中分析出的連結,也就是我們之前提到的未知網頁那一部分,暫時是沒有(www.neitui.me )PageRank值的。為了解決這個問題,會給這些頁面一個臨時的PageRank值:將這個網頁所有入鏈傳遞進來的PageRank值進行彙總,這樣就形成了該未知頁面的PageRank值,從而參與排序。下面舉例說明:

  5.OPIC策略策略

  該演算法實際上也是對頁面進行一個重要性打分。在演算法開始前,給所有頁面一個相同的初始現金(cash)。當下載了某個頁面P之後,將P的現金分攤給所有從P中分析出的連結,並且將P的現金清空。對於待抓取URL佇列中的所有頁面按照現金數進行排序。

  6.大站優先策略

  對於待抓取URL佇列中的所有網頁,根據所屬的網站進行分類。對於待下載頁面數多的網站,優先下載。這個策略也因此叫做大站優先策略。