網路爬蟲(1)

來源:互聯網
上載者:User

標籤:

搜尋引擎爬蟲工作原理

搜尋引擎的處理對象是互連網網頁,日前網頁數量以百億計,所以搜尋引擎首先面臨的問題就是:如何能夠設計出高效的下載系統,以將如此海量的網頁資料傳送到本地,在本地形成互連網網頁的鏡像備份。

網路爬蟲即起此作用,它是搜尋引擎系統中很關鍵也根基礎的構件。這裡主要介紹與網路爬蟲相關的技術,儘管爬蟲技術經過幾十年的發展,從整體架構上已相對成熟,但隨著連網的不斷髮展,也面臨著一些有挑戰性的新問題。

所示是一個通用的爬蟲架構流程。首先從互連網頁面中精心選擇一部分網頁,以這些網頁的連結地址作為種子URL,將這些種子URL放入待抓取URL隊列中,爬蟲從待抓取URL隊列依次讀取,並將URL通過DNS解析,把連結地址轉換為網站伺服器對應的IP地址。

然後將其和網頁相對路徑名稱交給網頁下載器,網頁下載器負責頁面內容的下載。對於下載到本地的網頁,一方面將其儲存到頁面庫中,等待建立索引等後續 處理;另一方面將下載網頁的URL放入已抓取URL隊列中,這個隊列記載了爬蟲系統已經下載過的網頁URL,以避免網頁的重複抓取。對於剛下載的網頁,從 中抽取出所包含的所有連結資訊,並在已抓取URL隊列中檢查,如果發現連結還沒有被抓取過,則將這個URL放入待抓取URL隊列末尾,在之後的抓取調度中 會下載這個URL對應的網頁。如此這般,形成迴圈,直到待抓取URL隊列為審,這代表著爬蟲系統已將能夠抓取的網頁盡數抓完,此時完成了一輪完整的抓取過 程。

對於爬蟲來說,往往還需要進行網頁去重及網頁反作弊。

上述是一個通用爬蟲的整體流程,如果從更加宏觀的角度考慮,處於動態抓取過程中的爬蟲和互連網所有網頁之間的關係,可以大致像2-2所身那樣,將互連網頁面劃分為5個部分:

1.已下載網頁集合:爬蟲已經從互連網下載到本地進行索引的網頁集合。

2.已到期網頁集合:由於網頁數最巨大,爬蟲完整抓取一輪需要較長時間,在抓取過程中,很多已經下載的網頁可能到期。之所以如此,是因為互連網網頁處於不斷的動態變化過程中,所以易產生本地網頁內容和真實互連網網頁不一致的情況。

3.待下載網頁集合:即處於中待抓取URL隊列中的網頁,這些網頁即將被爬蟲下載。

4.可知網頁集合:這些網頁還沒有被爬蟲下載,也沒有出現在待抓取URL隊列中,不過通過已經抓取的網頁或者在待抓取URL隊列中的網頁,總足能夠通過連結關係發現它們,稍晚時候會被爬蟲抓取並索引。

5.不可知網頁集合:有些網頁對於爬蟲來說是無法抓取到的,這部分網頁構成了不可知網頁集合。事實上,這部分網頁所佔的比例很高。

根據不同的應用,爬蟲系統在許多方面存在差異,大體而言,可以將爬蟲劃分為如下三種類型:

1. 批量型爬蟲(Batch Crawler):批量型爬蟲有比較明確的抓取範圍和目標,當爬蟲達到這個設定的目標後,即停止抓取過程。至於具體目標可能各異,也許是設定抓取一定數量的網頁即可,也許是設定抓取消耗的時間等。

2.增量型爬蟲(Incremental Crawler):增 量型爬蟲與批量型爬蟲不同,會保持持續不斷的抓取,對於抓取到的網頁,要定期更新,因為互連網的網頁處於不斷變化中,新增網頁、網頁被刪除或者網頁內容更 改都很常見,而增量型爬蟲需要及時反映這種變化,所以處於持續不斷的抓取過程中,不是在抓取新網頁,就是在更新已有網頁。通用的商業搜尋引擎爬蟲基本都屬 此類。

3.垂直型爬蟲(Focused Crawter):垂直型爬蟲關注特定主題內容或者屬於特定行業的網頁,比如 對於健康網站來說,只需要從互連網頁而裡找到與健康相關的頁面內容即可,其他行業的內容不在考慮範圍。垂直型爬蟲一個最大的特點和痛點就是:如何識別網頁 內容是否屬於指定行業或者主題。從節省系統資源的角度來說,不太可能把所有互連網頁面下載下來之後再去篩選,這樣浪費資源就太過分了,往往需要爬蟲在抓取 階段就能夠動態識別某個網址是否與主題相關,並盡量不去抓墩無關頁面,以達到節省資源的目的。垂直搜尋網站或者垂直行業網站往往需要此種類型的爬蟲。

網路爬蟲(1)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.