網絡爬蟲——簡介

爬蟲筆記(一)

網絡爬蟲(又被稱爲網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱爲網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本(參考百度百科)。

一、爬蟲分類

爬蟲,可分爲四大類(通用爬蟲、聚焦爬蟲、增量式爬蟲、深度爬蟲)對應不同的需求場景。

  1. 通用爬蟲
    通用網絡爬蟲又稱全網爬蟲(Scalable Web Crawler),爬行對象從一些種子 URL 擴充到整個 Web,這類網絡爬蟲的爬行範圍和數量巨大,對於爬行速度和存儲空間要求較高,對於爬行頁面的順序要求相對較低,通常採用並行的工作方式。
    通用網絡爬蟲的結構通常分爲可以分爲頁面爬行模塊 、頁面分析模塊、鏈接過濾模塊、頁面數據庫、URL 隊列、初始 URL 集合幾個部分。
獲取初始URL
爬取HTML內容
獲得新的URL
將新的URL放入URL隊列
存儲需要的數據至數據庫
頁面分析
讀取新的URL
是否滿足停止條件
停止
  1. 聚焦爬蟲
    聚焦網絡爬蟲(Focused Crawler),是指選擇性地爬行那些與預先定義好的主題相關頁面的網絡爬蟲。 和通用網絡爬蟲相比,聚焦爬蟲只需要爬行與主題相關的頁面。聚焦網絡爬蟲和通用網絡爬蟲相比,考慮到了爬行策略,根據每個鏈接的重要性不同,在URL隊列中的優先級也會不同。
定義爬取的目標
獲取初始URL
爬取HTML內容
獲得新的URL
將新的URL放入URL隊列
存儲需要的數據至數據庫
頁面分析
讀取新的URL
是否滿足停止條件
停止
過濾無關URL

二、爬行策略

通用爬蟲對於URL隊列的排序要求可能不是很高,但對於聚焦爬蟲則不同。爲了節省資源,聚焦爬蟲會根據爬行策略,結合預先定義好的爬取主題,對URL隊列中的鏈接進行排序,優先爬取排名靠前的URL鏈接。常見的爬行策略有:深度優先策略、廣度優先策略、大戰優先策略、反鏈策略(根據被其他網頁指向的次數來進行優先級判定)、OPIC策略、Partial PageRank策略等。

三、網頁更新策略

對於爬取存至數據庫的數據,有的內容基本不會有太大變動,但是有的內容可能具有一定的實效性,因此需要根據網頁的更新頻率對網頁內容進行週期性的爬取,保證保存的數據是較新的。常用的網頁更新策略主要有:用戶體驗策略、歷史數據策略、聚類分析策略等。

  1. 用戶體驗策略
    搜索引擎在查詢某個關鍵的時候,會有一個排名結果,排名結果中會有大量的網頁,但是,大部分的用戶只會關注排名靠前的網頁。爬蟲會優先更新排名結果考前的網頁。這種更新策略,稱之爲用戶體驗策略。
  2. 歷史數據策略
    爬蟲該何時去爬取結果考前的網頁?在爬取的過程中,如果保留對應的網頁的多個歷史版本,並進行對應的分析,依據多個歷史版本的內容更新、收索質量影響、用戶體驗等信息,來確定網頁的爬取週期。我們同樣也可以依據某個網頁的歷史更新數據,通過泊松過程進行建模等手段,預測該網頁下一次更新的時間。
  3. 聚類分析策略
    以上兩種策略,都需要歷史數據作爲依據。對於新的網頁可能不太公平,因此需要採取新的更新策略,常見的如:聚類分析策略。
    所謂物以類聚、人以羣分,聚在一起的事務一定有某種共性。將聚類分析算法運用在爬蟲對網頁的更新上,大致過程如下:
海量網頁
聚類分析
聚類1
聚類2
聚類3
聚類4
抽樣-聚類1更新頻率
抽樣-聚類2更新頻率
抽樣-聚類3更新頻率
抽樣-聚類4更新頻率

四、網頁的請求類型

請求類型分爲兩種(Get\Post)
Get——req.Request(url,header)
Post——req.Request(url,header,postdata)
具體的用法,會在下一次的博客中進行詳細的介紹。

五、網頁請求的常見錯誤

Number Code 含義
200 OK 一切正常
301 Moved Permanently 重定向到新的URL,永久性
302 Found 重定向到新的URL,非永久性
304 Not Modified 請求資源未更新
301 Moved Permanently 重定向到新的URL,永久性
302 Found 重定向到新的URL,非永久性
400 Bad Request 非法請求
403 Forbidden 禁止訪問
404 Not Found 沒有找到對應頁面
500 Internal Server Error 服務器內部錯誤
501 Not Implemented 服務器不支持實現請求所需要的功能
302 Found 重定向到新的URL,非永久性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章