反爬行策略通常處理方式
做爬蟲工作的伙伴都知道,不同的網(wǎng)站有不同的反爬蟲策略,需要具體情況具體分析,制定相應(yīng)的爬蟲策略。雖然爬蟲策略有上千萬種,但一般網(wǎng)站基本都是向用戶請求頭部、用戶訪問行為、網(wǎng)站目錄、數(shù)據(jù)加載模式打擊爬蟲的三個方面,下面是精靈ip代理帶我們分析一下。
一、用戶請求的標(biāo)題
根據(jù)用戶請求的標(biāo)題,反爬蟲是最常見的反爬蟲策略。許多網(wǎng)站會檢測標(biāo)題和用戶-代理,有些網(wǎng)站會檢測Referer(一些資源網(wǎng)站的防盜鏈就是檢測推薦人)等。
標(biāo)頭的反爬行策略通常很容易處理。比如對于用戶代理IP的反抓取策略,我們可以收集很多用戶代理,然后隨機(jī)調(diào)用。還可以很好的處理Referer值的反抓取策略,可以將值改為目標(biāo)網(wǎng)站的域名。
二、用戶訪問行為
大多數(shù)網(wǎng)站都制定了基于用戶的反爬蟲策略訪問行為,畢竟他們會直接加載服務(wù)器。一般來說:可以從兩個方面來判斷一是同一個IP在短時間內(nèi)多次訪問同一個頁面,二是同一個賬號在短時間內(nèi)多次執(zhí)行同一個操作。
第一種情況不難處理,可以選擇使用代理IP來解決。比如站內(nèi)精靈IP代理的短期優(yōu)質(zhì)代理,一手私人代理,專屬IP池,都可以很好的完成工作。
第二章的情況也可以處理好。在每個請求之后,下一個請求以幾秒鐘的隨機(jī)間隔發(fā)送。為什么要隨機(jī)?因為不規(guī)則休眠更符合真實用戶的訪問行為。
三、數(shù)據(jù)加載模式
我們知道,網(wǎng)站界面大多是靜態(tài)頁面(也就是說,你可以在瀏覽器中看到源代碼)(或者推送技術(shù)等方法)獲得,對于爬行動物來說比較麻煩。
解決方案:首先,用Firebug或Fiddler分析網(wǎng)絡(luò)請求。找到ajax的請求url,用Python模擬請求得到需要的數(shù)據(jù)。但是有些網(wǎng)站把a(bǔ)jax請求的所有參數(shù)都加密了,我們只能用動態(tài)渲染頁面信息來捕捉。
精靈IP代理以上是網(wǎng)站最常見的三種高級反爬策略,當(dāng)然還有一些其他的反爬策略,比如驗證碼,這就需要爬蟲工程師根據(jù)實際情況制定爬蟲策略。