解網(wǎng)站的反爬蟲策略以及爬蟲的應(yīng)對(duì)
自從有了互聯(lián)網(wǎng)網(wǎng)絡(luò),就出現(xiàn)了爬蟲和反爬蟲。越大的網(wǎng)站,越成熟的網(wǎng)站,其反爬蟲機(jī)制越完善,初始的IP限制、驗(yàn)證碼限制等限制,今天一起了解網(wǎng)站的反爬蟲策略以及爬蟲的應(yīng)對(duì)。
精靈IP代理1.用戶行為反爬蟲
有些網(wǎng)站會(huì)檢測(cè)用戶行為,比如同一IP短時(shí)間內(nèi)多次訪問同一頁面,或者同一賬號(hào)短時(shí)間內(nèi)多次做同一操作。
大部分網(wǎng)站是前者,使用IP代理就可以解決。我們可以將檢測(cè)后的代理IP保存在一個(gè)文件中,但這種方式并不可取,代理IP失敗的概率較高,所以從專門的代理IP網(wǎng)站實(shí)時(shí)抓取是一個(gè)不錯(cuò)的選擇。
在第二種情況下,下一個(gè)請(qǐng)求可以在每次請(qǐng)求后幾秒鐘的隨機(jī)時(shí)間間隔內(nèi)進(jìn)行。一些有邏輯漏洞的網(wǎng)站可以通過多次請(qǐng)求、注銷、再次登錄、繼續(xù)請(qǐng)求等,繞過了同一賬號(hào)不能在短時(shí)間內(nèi)多次提出同一請(qǐng)求的限制。
對(duì)于cookie,檢查cookie以確定用戶是否是有效用戶。需要登錄的網(wǎng)站經(jīng)常使用這種技術(shù)。另外,一些網(wǎng)站的登錄會(huì)動(dòng)態(tài)更新認(rèn)證。登錄時(shí),隨機(jī)分配認(rèn)證進(jìn)行登錄認(rèn)證_Token, authentication_令牌將與用戶提交的登錄名和密碼一起發(fā)送回服務(wù)器。
2.動(dòng)態(tài)頁面的反爬蟲
有時(shí)候當(dāng)你抓取目標(biāo)頁面時(shí),發(fā)現(xiàn)關(guān)鍵信息內(nèi)容是空的,只有框架代碼。這是因?yàn)榫W(wǎng)站的信息通過用戶帖子的XHR動(dòng)態(tài)返回內(nèi)容信息。這個(gè)問題的解決方案是通過開發(fā)者工具(Fireflies, etc)分析網(wǎng)站流量。,找到一個(gè)單獨(dú)的內(nèi)容信息請(qǐng)求(如Json),抓取內(nèi)容信息,獲取所需內(nèi)容。
更復(fù)雜的是動(dòng)態(tài)請(qǐng)求的加密,參數(shù)可以 t被解析,所以它們可以 不要被抓住。在這種情況下,您可以使用機(jī)械化、SeleniumRC調(diào)用瀏覽器內(nèi)核,就像真正的瀏覽器上網(wǎng)一樣,可以最大化抓取的成功率,但效率會(huì)大打折扣。
3.防爬行通過收割臺(tái)
向用戶索要標(biāo)題是最常見的反爬蟲策略。許多網(wǎng)站會(huì)檢測(cè)標(biāo)題和用戶-代理,有些網(wǎng)站會(huì)檢測(cè)推薦人(一些資源網(wǎng)站的防盜鏈就是檢測(cè)推薦人)
如果遇到這種反爬蟲機(jī)制,可以直接給爬蟲添加頭,并添加瀏覽器的用戶-代理被復(fù)制到爬蟲的頭部。或?qū)eferer值修改為目標(biāo)網(wǎng)站的域名。對(duì)于檢測(cè)標(biāo)題的反爬蟲,可以通過在爬蟲中修改或添加標(biāo)題來繞過它。
4.限制一些IP訪問
很多網(wǎng)站都可以獲得免費(fèi)的代理IP。因?yàn)榕老x可以使用這些代理IP來抓取網(wǎng)站,所以網(wǎng)站也可以使用精靈IP代理來反向限制,通過抓取這些IP并保存在服務(wù)器上來限制爬蟲使用代理IP。