網絡爬蟲基本原理(一)


網絡爬蟲是捜索引擎抓取系統的重要組成部分。

爬蟲的主要目的是將互聯網上的網頁下載到本地形成一個或聯網內容的鏡像備份。

這篇博客主要對爬蟲以及抓取系統進行一個簡單的概述。

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

    一個通用的網絡爬蟲的框架如圖所看到的:

    網絡爬蟲的基本工作流程例如以下:

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

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

    3.從待抓取URL隊列中取出待抓取在URL。解析DNS。而且得到主機的ip,並將URL相應的網頁下載下來。存儲進已下載網頁庫中。

此外。將這些URL放進已抓取URL隊列。

    4.分析已抓取URL隊列中的URL,分析當中的其它URL,而且將URL放入待抓取URL隊列,從而進入下一個循環。

二、從爬蟲的角度對互聯網進行划分

    相應的。能夠將互聯網的全部頁面分為五個部分:

    1.已下載未過期網頁

    2.已下載已過期網頁:抓取到的網頁實際上是互聯網內容的一個鏡像與備份。互聯網是動態變化的,一部分互聯網上的內容已經發生了變化,這時,這部分抓取到的網頁就已經過期了。

    3.待下載網頁:也就是待抓取URL隊列中的那些頁面

    4.可知網頁:還沒有抓取下來,也沒有在待抓取URL隊列中,可是能夠通過對已抓取頁面或者待抓取URL相應頁面進行分析獲取到的URL,覺得是可知網頁。

    5.另一部分網頁,爬蟲是無法直接抓取下載的。稱為不可知網頁。

三、抓取策略

    在爬蟲系統中,待抓取URL隊列是非常重要的一部分。待抓取URL隊列中的URL以什么樣的順序排列也是一個非常重要的問題。由於這涉及到先抓取那個頁面,后抓取哪個頁面。而決定這些URL排列順序的方法,叫做抓取策略。

以下重點介紹幾種常見的抓取策略:

    1.深度優先遍歷策略

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

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

    2.寬度優先遍歷策略

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

    遍歷路徑: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值。可是這樣的情況還會有一個問題:對於已經下載下來的頁面中分析出的鏈接。也就是我們之前提到的未知網頁那一部分,暫時是沒有PageRank值的。為了解決問題,會給這些頁面一個暫時的PageRank值:將這個網頁全部入鏈傳遞進來的PageRank值進行匯總,這樣就形成了該未知頁面的PageRank值。從而參與排序。以下舉例說明:

    5.OPIC策略策略

    該算法實際上也是對頁面進行一個重要性打分。

在算法開始前,給全部頁面一個同樣的初始現金(cash)。

當下載了某個頁面P之后。將P的現金分攤給全部從P中分析出的鏈接,而且將P的現金清空。

對於待抓取URL隊列中的全部頁面依照現金數進行排序。

    6.大站優先策略

    對於待抓取URL隊列中的全部網頁,依據所屬的站點進行分類。

對於待下載頁面數多的站點,優先下載。這個策略也因此叫做大站優先策略。 

 

參考書目:

1.《這就是搜索引擎——核心技術具體解釋》  張俊林  電子工業出版社

2.《搜索引擎技術基礎》         劉奕群等 清華大學出版社

author:wawlian
save me from myself


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM