選擇我們,所有數據都是你的!

服務熱線:029-87553281

聯系我們

029-87553281(陜西 西安)

13389148466 或 13571845363

1649677458 或 181697466

hello@webscraping.cn

歡迎咨詢,點擊這里給我發送消息。 歡迎咨詢,點擊這里給我發送消息。

技術文章

如何突破防采集策略-限制訪問頻率

發布時間:2013-06-02

 目前常見的Web反采集策略大概有以下幾種:

  • 1)數據加密;
  • 2)限制訪問頻率;
  • 3)數據以非文本形式展現;
  • 4)驗證碼保護;
  • 5)Cookie驗證;

本文主要探討一下如何突破”限制訪問頻率”:

“限制訪問頻率”的原理:

服務器端程序(例如,WAF)維護了一個客戶端(IP)的訪問計數,如果客戶端(IP)請求頻率超過閾值,請求就會被攔截,通常會出現下列情形:

  • 1)最常見的:返回403或503錯誤。
  • 2)連接被重置。
  • 3)最令人頭疼的:返回無效的內容
     
突破方法:
  • 1)使用HTTP代理。因為服務端是根據IP進行限制的,通過使用代理就可以將下載量平均到多個IP上。需要注意的是透明代理往往是無效的,因為WAF能夠檢測到真實的源IP,所以要使用隱秘(secret)代理。
  • 2)增加請求延遲。比如,WAF限制單IP請求頻率不能超過20次/分鐘,我們可以在兩次請求之間增加5S的延遲,這樣下載頻率就是12次/分鐘,就不會被攔截了。
    通常我們會將1)和2)的方法結合,這樣即能防止被攔截,又能加快采集速度。例如,使用10個代理,每次下載增加5S延遲,一分鐘的實際下載量就是:120次。
  • 3)利用搜索引擎緩存(Google,Bing,百度)?!扒€救國”策略,繞過目標服務器,從搜索引擎的緩存進行采集。而且緩存里的頁面的結構和原頁面是一樣的,不用重寫提取規則。
  • 4)谷歌翻譯。讓谷歌作為我們的“代理”,將源語言和目標語言都設置成一樣,這樣從谷歌翻譯結果獲取的數據和原頁面就是一樣的(注意,HTML結構有很大變化,需要重寫提取規則)。
  • 5)對于返回無效內容的情況,一定要找到檢測內容是否有效的方法,否則很難保證所有數據都是正確的。
例如,美餐網的菜單,如果采集過快返回的菜單項目就是隨機的,如下圖所示:
 
上圖是正常數據
 
上圖是無效數據
 
鯤鵬數據的技術人員通過仔細分析頁面源碼,最后發現了規律:正常頁面的菜單項ID基本上都是連續的,而隨機內容的菜單項ID是隨機的。
基于這一特征我們就能用程序檢測出返回的內容是否有效,只處理有效的數據,無效的內容進行重新采集。
免费一区二区三区视频,影音先锋中文字幕,国产成人综合色视频精品,亚洲影院天堂中文AV色