網(wǎng)站配備了反爬蟲后,爬蟲應(yīng)該如何響應(yīng)?
jj
2021-11-29
大數(shù)據(jù)資源整合過程中,總有爬蟲和反爬蟲。網(wǎng)站越大,越成熟的網(wǎng)站,其反爬蟲機制、初始IP限制、驗證碼限制等限制越完善。今天我們來看看網(wǎng)站配備了反爬蟲后,爬蟲應(yīng)該如何響應(yīng)?

網(wǎng)站反爬蟲機制一般有哪些方式?
有些網(wǎng)站會檢測到用戶行為,比如同一個IP短時間內(nèi)多次訪問同一個頁面,或者同一個賬號短時間內(nèi)多次做同一個操作。
大多數(shù)網(wǎng)站都是前一種情況,可以通過使用IP代理來解決。我們可以在檢測后將代理IP保存在文件中,但是這種方法并不可取,而且代理IP失敗的概率很高,所以從專門的代理IP網(wǎng)站上實時抓取是一個不錯的選擇。
在第二種情況下,下一個請求可以在每個請求之后的幾秒鐘的隨機時間間隔內(nèi)發(fā)出。一些存在邏輯漏洞的網(wǎng)站可以通過多次請求、注銷、再次登錄、繼續(xù)請求等方式,繞過同一賬號無法在短時間內(nèi)多次提出同一請求的限制。
對于cookie,檢查cookie以確定用戶是否是有效用戶。需要登錄的網(wǎng)站經(jīng)常使用這種技術(shù)。此外,一些網(wǎng)站的登錄將動態(tài)更新認(rèn)證。登錄時,隨機分配用于登錄身份驗證的authentication _ token,authentication _ token將與用戶提交的登錄名和密碼一起發(fā)送回服務(wù)器。
精靈ip代理
2.通過標(biāo)頭進行反爬網(wǎng)
2.通過標(biāo)頭進行反爬網(wǎng)
向用戶請求標(biāo)頭反爬蟲是最常見的反爬蟲策略。很多網(wǎng)站會檢測到Headers的User-Agent,有些網(wǎng)站會檢測到Referer(有些資源網(wǎng)站的防盜鏈就是檢測Referer)。
如果遇到這種反爬蟲機制,可以直接將header添加到爬蟲中,將瀏覽器的User-Agent復(fù)制到爬蟲的header中。或者將Referer值修改為目標(biāo)網(wǎng)站的域名。對于檢測標(biāo)頭的反爬網(wǎng)程序,可以通過修改或添加爬網(wǎng)程序中的標(biāo)頭來繞過它。
3.限制一些IP訪問
免費代理IP可以從很多網(wǎng)站獲得。由于爬網(wǎng)程序可以使用這些代理IP來爬網(wǎng)網(wǎng)站,因此網(wǎng)站也可以使用這些代理IP反向限制,通過爬網(wǎng)這些IP并將其保存在服務(wù)器上來限制爬網(wǎng)程序使用代理IP。鑒于IP限制,一般建議使用付費代理IP服務(wù),如優(yōu)質(zhì)云立方動態(tài)IP撥號VPS。
4.動態(tài)頁面的反爬蟲
有時抓取目標(biāo)頁面時,發(fā)現(xiàn)關(guān)鍵信息內(nèi)容為空,只有框架代碼。這是因為網(wǎng)站的信息通過用戶帖子的XHR動態(tài)返回內(nèi)容信息。這個問題的解決方案是通過開發(fā)者工具(FireBug等)分析網(wǎng)站流量。),找到單獨的內(nèi)容信息請求(如Json),抓取內(nèi)容信息,得到需要的內(nèi)容。
更復(fù)雜的是動態(tài)請求的加密,參數(shù)無法解析,所以無法抓取。在這種情況下,可以通過Mechanize、selenium RC調(diào)用瀏覽器內(nèi)核,就像真正的瀏覽器上網(wǎng)一樣,可以最大限度地提高爬行的成功率,但效率會大打折扣。