
800819103
在線客服,實時響應
qq群
在線客服,實時響應
客服電話
13318873961
初出茅廬的數據小白,就幻想著爬蟲正常運行,正常抓取數據,一切看起來都是那么美好。然而實際上,在學習爬蟲上會有許多的疑問,首先要弄懂一些必要的原理,不是照搬別人的代碼就行。下面小編整理了關于爬蟲的入門基礎,先搞懂爬蟲與框架、網頁的關系:
一、通用爬蟲技術框架
通用爬蟲技術框架爬蟲系統首先從互聯網頁面中精心選擇一部分網頁,以這些網頁的鏈接地址作為種子URL,將這些種子放入待抓取URL隊列中,爬蟲從待抓取URL隊列依次讀取,并將URL通過DNS解析,把鏈接地址轉換為網站服務器對應的IP地址。
然后將其和網頁相對路徑名稱交給網頁下載器,網頁下載器負責頁面的下載。對于下載到本地的網頁,一方面將其存儲到頁面庫中,等待建立索引等后續處理;另一方面將下載網頁的URL放入已抓取隊列中,這個隊列記錄了爬蟲系統已經下載過的網頁URL,以避免系統的重復抓取。
對于剛下載的網頁,從中抽取出包含的所有鏈接信息,并在已下載的URL隊列中進行檢查,如果發現鏈接還沒有被抓取過,則放到待抓取URL隊列的末尾,在之后的抓取調度中會下載這個URL對應的網頁。
如此這般,形成循環,直到待抓取URL隊列為空,這代表著爬蟲系統將能夠抓取的網頁已經悉數抓完,此時完成了一輪完整的抓取過程。
二、爬蟲和互聯網所有網頁之間的關系
上述是一個通用爬蟲的整體流程,如果從更加宏觀的角度考慮,處于動態抓取過程中的爬蟲和互聯網所有網頁之間的關系,可以概括為以下5個部分:
1.待下載網頁集合
處于待抓取URL隊列中的網頁,這些網頁即將被爬蟲下載。
2.已下載網頁結合
爬蟲已經從互聯網下載到本地進行索引的網頁集合。
3.已過期網頁結合
由于網頁數量龐大,爬蟲完整抓取一輪需要較長時間,在抓取過程中,很多已下載的網頁可能已經更新了,從而導致過期。之所以如此,是因為互聯網網頁處于不斷的動態變化過程中,所以易產生本地網頁內容和真實互聯網不一致的情況。
4.未知網頁集合
有些網頁對于爬蟲是無法抓取到的,這部分網頁構成了未知網頁結合。事實上,這部分網頁所占的比例很高。
5.可知網頁集合
這些網頁還沒有被爬蟲下載,也沒有出現在待抓取URL隊列中,通過已經抓取的網頁或者在待抓取URL隊列中的網頁,總是能夠通過鏈接關系發現它們,稍晚時候會被爬蟲抓取并索引。
三、爬蟲有哪些類型
從理解爬蟲的角度看,對互聯網網頁給出如上劃分有助于深入理解搜索引擎爬蟲所面臨的主要任務和挑戰。絕大多數爬蟲系統遵循上文的流程,但是并非所有的爬蟲系統都如此一致。根據具體應用的不同,爬蟲系統在許多方面存在差異,大體而已,可以將爬蟲系統分為如下3種類型。
1.垂直型爬蟲
垂直型爬蟲關注特定主題內容或者屬于特定行業的網頁,比如對于健康網站來說,只需要從互聯網頁面里找到與健康相關的頁面內容即可,其他行業的內容不在考慮范圍。垂直型爬蟲一個最大的特點和難點就是:如何識別網頁內容是否屬于指定行業或主題。從節省系統資源的角度來講,不可能把所有互聯網頁面下載之后在進行篩選,這樣會造成資源過度浪費,往往需要爬蟲在抓取階段就能夠動態識別某個網址是否與主題相關,并盡量不去抓取無關頁面,以達到節省資源的目的。垂直搜索網站或者垂直行業網站往往需要此種類型的爬蟲。
2.批量型爬蟲
批量型爬蟲有比較明確的抓取范圍和目標,當爬蟲達到這個設定的目標后,即停止抓取過程。至于具體目標可能各異,也許是設定抓取一定數量的網頁即可,也許是設定抓取的時間等,各不一樣。
3.增量型爬蟲
增量型爬蟲與批量型爬蟲不同,會保持持續不斷的抓取,對于抓取到的網頁,要定期更新,因為互聯網網頁處于不斷變化中,新增網頁、網頁被刪除或者網頁內容更改都很常見,而增量型爬蟲需要及時反映這種變化,所以處于持續不斷的抓取過程中,不是在抓取新網頁,就是在更新已有網頁。通用的商業搜索引擎爬蟲基本都屬此類。