網(wǎng)站最常見的三種高級反爬蟲策略
jj
2021-12-23
做爬蟲工作的伙伴都知道,不同的網(wǎng)站有不同的防爬策略,我們需要具體情況具體分析,制定相應(yīng)的爬蟲策略。雖然爬蟲策略有千萬種,但一般網(wǎng)站基本上是從用戶請求的頭部、用戶訪問行為、網(wǎng)站目錄、數(shù)據(jù)加載方式三個方面來對抗爬蟲的。下面是精靈ip代理帶我們來分析一下。

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