網(wǎng)絡爬蟲基本原理_第1頁
網(wǎng)絡爬蟲基本原理_第2頁
網(wǎng)絡爬蟲基本原理_第3頁
網(wǎng)絡爬蟲基本原理_第4頁
網(wǎng)絡爬蟲基本原理_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、網(wǎng)絡爬蟲基本原理 網(wǎng)絡爬蟲是捜索引擎抓取系統(tǒng)的重要組成部分。爬蟲的主要目的是將互聯(lián)網(wǎng)上的網(wǎng)頁下載到本地形成一個或聯(lián)網(wǎng)內(nèi)容的鏡像備份。這篇博客主要對爬蟲以及抓取系統(tǒng)進行一個簡單的概述。一、網(wǎng)絡爬蟲的基本結(jié)構(gòu)及工作流程    一個通用的網(wǎng)絡爬蟲的框架如圖所示:    網(wǎng)絡爬蟲的基本工作流程如下:    1.首先選取一部分精心挑選的種子URL;    2.將這些URL放入待抓取URL隊列;    3.從待抓取URL隊列中取出待抓取在URL,解析DNS,

2、并且得到主機的ip,并將URL對應的網(wǎng)頁下載下來,存儲進已下載網(wǎng)頁庫中。此外,將這些URL放進已抓取URL隊列。    4.分析已抓取URL隊列中的URL,分析其中的其他URL,并且將URL放入待抓取URL隊列,從而進入下一個循環(huán)。二、從爬蟲的角度對互聯(lián)網(wǎng)進行劃分    對應的,可以將互聯(lián)網(wǎng)的所有頁面分為五個部分:    1.已下載未過期網(wǎng)頁    2.已下載已過期網(wǎng)頁:抓取到的網(wǎng)頁實際上是互聯(lián)網(wǎng)內(nèi)容的一個鏡像與備份,互聯(lián)網(wǎng)是動態(tài)變化的,一部分互聯(lián)網(wǎng)上的內(nèi)容已經(jīng)發(fā)生了變化,這

3、時,這部分抓取到的網(wǎng)頁就已經(jīng)過期了。    3.待下載網(wǎng)頁:也就是待抓取URL隊列中的那些頁面    4.可知網(wǎng)頁:還沒有抓取下來,也沒有在待抓取URL隊列中,但是可以通過對已抓取頁面或者待抓取URL對應頁面進行分析獲取到的URL,認為是可知網(wǎng)頁。    5.還有一部分網(wǎng)頁,爬蟲是無法直接抓取下載的。稱為不可知網(wǎng)頁。三、抓取策略    在爬蟲系統(tǒng)中,待抓取URL隊列是很重要的一部分。待抓取URL隊列中的URL以什么樣的順序排列也是一個很重要的問題,因為這涉及到先抓取那個頁面,

4、后抓取哪個頁面。而決定這些URL排列順序的方法,叫做抓取策略。下面重點介紹幾種常見的抓取策略:    1.深度優(yōu)先遍歷策略深度優(yōu)先遍歷策略是指網(wǎng)絡爬蟲會從起始頁開始,一個鏈接一個鏈接跟蹤下去,處理完這條線路之后再轉(zhuǎn)入下一個起始頁,繼續(xù)跟蹤鏈接。我們以下面的圖為例:    遍歷的路徑:A-F-G  E-H-I B C D    2.寬度優(yōu)先遍歷策略    寬度優(yōu)先遍歷策略的基本思路是,將新下載網(wǎng)頁中發(fā)現(xiàn)的鏈接直接插入待抓取URL隊列的末尾。也就是指網(wǎng)絡爬蟲會先抓取起始

5、網(wǎng)頁中鏈接的所有網(wǎng)頁,然后再選擇其中的一個鏈接網(wǎng)頁,繼續(xù)抓取在此網(wǎng)頁中鏈接的所有網(wǎng)頁。還是以上面的圖為例:    遍歷路徑:A-B-C-D-E-F G H I    3.反向鏈接數(shù)策略    反向鏈接數(shù)是指一個網(wǎng)頁被其他網(wǎng)頁鏈接指向的數(shù)量。反向鏈接數(shù)表示的是一個網(wǎng)頁的內(nèi)容受到其他人的推薦的程度。因此,很多時候搜索引擎的抓取系統(tǒng)會使用這個指標來評價網(wǎng)頁的重要程度,從而決定不同網(wǎng)頁的抓取先后順序。    在真實的網(wǎng)絡環(huán)境中,由于廣告鏈接、作弊鏈接的存在,反向鏈接數(shù)不能完全等他我那

6、個也的重要程度。因此,搜索引擎往往考慮一些可靠的反向鏈接數(shù)。    4.Partial PageRank策略    Partial PageRank算法借鑒了PageRank算法的思想:對于已經(jīng)下載的網(wǎng)頁,連同待抓取URL隊列中的URL,形成網(wǎng)頁集合,計算每個頁面的PageRank值,計算完之后,將待抓取URL隊列中的URL按照PageRank值的大小排列,并按照該順序抓取頁面。    如果每次抓取一個頁面,就重新計算PageRank值,一種折中方案是:每抓取K個頁面后,重新計算一次PageRank值。但

7、是這種情況還會有一個問題:對于已經(jīng)下載下來的頁面中分析出的鏈接,也就是我們之前提到的未知網(wǎng)頁那一部分,暫時是沒有PageRank值的。為了解決這個問題,會給這些頁面一個臨時的PageRank值:將這個網(wǎng)頁所有入鏈傳遞進來的PageRank值進行匯總,這樣就形成了該未知頁面的PageRank值,從而參與排序。下面舉例說明:    5.OPIC策略策略    該算法實際上也是對頁面進行一個重要性打分。在算法開始前,給所有頁面一個相同的初始現(xiàn)金(cash)。當下載了某個頁面P之后,將P的現(xiàn)金分攤給所有從P中分析出的鏈接,并且將P的現(xiàn)金清空。

8、對于待抓取URL隊列中的所有頁面按照現(xiàn)金數(shù)進行排序。    6.大站優(yōu)先策略    對于待抓取URL隊列中的所有網(wǎng)頁,根據(jù)所屬的網(wǎng)站進行分類。對于待下載頁面數(shù)多的網(wǎng)站,優(yōu)先下載。這個策略也因此叫做大站優(yōu)先策略。 四、更新策略    互聯(lián)網(wǎng)是實時變化的,具有很強的動態(tài)性。網(wǎng)頁更新策略主要是決定何時更新之前已經(jīng)下載過的頁面。常見的更新策略又以下三種:    1.歷史參考策略    顧名思義,根據(jù)頁面以往的歷史更新數(shù)據(jù),預測該頁面未來何時會發(fā)生變化。一般來說,是通過泊松過

9、程進行建模進行預測。    2.用戶體驗策略    盡管搜索引擎針對于某個查詢條件能夠返回數(shù)量巨大的結(jié)果,但是用戶往往只關(guān)注前幾頁結(jié)果。因此,抓取系統(tǒng)可以優(yōu)先更新那些現(xiàn)實在查詢結(jié)果前幾頁中的網(wǎng)頁,而后再更新那些后面的網(wǎng)頁。這種更新策略也是需要用到歷史信息的。用戶體驗策略保留網(wǎng)頁的多個歷史版本,并且根據(jù)過去每次內(nèi)容變化對搜索質(zhì)量的影響,得出一個平均值,用這個值作為決定何時重新抓取的依據(jù)。    3.聚類抽樣策略    前面提到的兩種更新策略都有一個前提:需要網(wǎng)頁的歷史信息。這樣

10、就存在兩個問題:第一,系統(tǒng)要是為每個系統(tǒng)保存多個版本的歷史信息,無疑增加了很多的系統(tǒng)負擔;第二,要是新的網(wǎng)頁完全沒有歷史信息,就無法確定更新策略。    這種策略認為,網(wǎng)頁具有很多屬性,類似屬性的網(wǎng)頁,可以認為其更新頻率也是類似的。要計算某一個類別網(wǎng)頁的更新頻率,只需要對這一類網(wǎng)頁抽樣,以他們的更新周期作為整個類別的更新周期?;舅悸啡鐖D:        五、分布式抓取系統(tǒng)結(jié)構(gòu)    一般來說,抓取系統(tǒng)需要面對的是整個互聯(lián)網(wǎng)上數(shù)以億計的網(wǎng)頁。單個抓取程序不可能完成這樣的任務。往往需要多個抓取程序一起來處理

11、。一般來說抓取系統(tǒng)往往是一個分布式的三層結(jié)構(gòu)。如圖所示:    最下一層是分布在不同地理位置的數(shù)據(jù)中心,在每個數(shù)據(jù)中心里有若干臺抓取服務器,而每臺抓取服務器上可能部署了若干套爬蟲程序。這就構(gòu)成了一個基本的分布式抓取系統(tǒng)。    對于一個數(shù)據(jù)中心內(nèi)的不同抓去服務器,協(xié)同工作的方式有幾種:    1.主從式(Master-Slave)    主從式基本結(jié)構(gòu)如圖所示:    對于主從式而言,有一臺專門的Master服務器來維護待抓取URL隊列,它負責每次將URL分發(fā)到不同的Slave服務器,而Slav

12、e服務器則負責實際的網(wǎng)頁下載工作。Master服務器除了維護待抓取URL隊列以及分發(fā)URL之外,還要負責調(diào)解各個Slave服務器的負載情況。以免某些Slave服務器過于清閑或者勞累。    這種模式下,Master往往容易成為系統(tǒng)瓶頸。    2.對等式(Peer to Peer)    對等式的基本結(jié)構(gòu)如圖所示:    在這種模式下,所有的抓取服務器在分工上沒有不同。每一臺抓取服務器都可以從待抓取在URL隊列中獲取URL,然后對該URL的主域名的hash值H,然后計算H mod m(其中m是服務器的數(shù)量,以上圖為

13、例,m為3),計算得到的數(shù)就是處理該URL的主機編號。    舉例:假設對于URL ,計算器hash值H=8,m=3,則H mod m=2,因此由編號為2的服務器進行該鏈接的抓取。假設這時候是0號服務器拿到這個URL,那么它將該URL轉(zhuǎn)給服務器2,由服務器2進行抓取。    這種模式有一個問題,當有一臺服務器死機或者添加新的服務器,那么所有URL的哈希求余的結(jié)果就都要變化。也就是說,這種方式的擴展性不佳。針對這種情況,又有一種改進方案被提出來。這種改進的方案是一致性哈希法來確定服務器分工。其基本結(jié)構(gòu)如圖所示:    一致性哈希將URL的主域名進行哈希運算,映射為一個范圍在0-232之間的某個數(shù)。而將這個范圍平均的分配給m臺服務器,根據(jù)URL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論