網絡爬蟲--前世此生

-下載網頁: urllib Request
-解析網頁 BeautifulSoup
-模擬交互 處理JS動態網頁: Selenium

- 分佈式隊列
- 布隆過濾器(BLoom Filter)


網絡爬蟲是一種自動提取網頁的程序,它爲搜索引擎
從萬維網上下載網頁,是搜索引擎的重要組成部分。
傳統爬蟲從一個活若干初始網頁URL開始,得到初始網頁上的URL,
在爬取網頁過程當中,不斷從當前頁面上抽取新的url放入隊列,
直到知足系統的必定中止條件


爬蟲的分類

批量型爬蟲

批量型爬蟲有明確的抓取範圍和慕白,當爬蟲達到這個設定目標後
即中止抓取過程。

增量型爬蟲

增量型爬蟲會持續不斷的抓取,對於抓取的網頁,要按期更新。
通用的商業搜索引擎爬蟲基本屬於此類

垂直型爬蟲

垂直型爬蟲關注特定主體內容或者屬於特定行業的網頁,其餘主體或者
其餘行業的內容再也不考慮範圍。


網絡爬蟲的基本工做流程:

1.首先選取一部分精心挑選的種子url;
2.將這些URL放入等待抓取的URL隊列;
3.從待抓取隊列中取出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.深度優先遍歷策略
2.寬度(廣度)優先遍歷策略
3.反向鏈路數策略
4.Partial PageRank 策略

 

互聯網是動態變化的,具備很強的動態性。網頁更新策略主要是決定什麼時候更新以前已經下載過的頁面。常見的更新策略有如下三種:網絡

1.歷史參考策略分佈式

2.用戶體驗策略搜索引擎

3.聚類抽樣策略url


泊松分佈

儘管搜索引擎針對於某查詢條件返回數量巨大的結果,可是用戶每每只是關注前幾頁結果。
所以,抓取系統能夠優先更新那些顯示在查詢結果前幾頁的網頁。然後再更新那些後面網頁。
這種更新策略也是須要用到歷史信息的。

  用戶體驗策略保留網頁多個歷史版本,而且能夠根據過去每次內容變化對搜索質量的影響,獲得一個平均值。
用這個值做爲決定什麼時候抓取的依據

 

相關文章
相關標籤/搜索