正在做python crawler的朋友應(yīng)該都很熟悉python crawler的開(kāi)發(fā),說(shuō)起Python爬蟲(chóng)的發(fā)展史,簡(jiǎn)直就是一部愛(ài)上反爬的血淚史。在互聯(lián)網(wǎng)上,凡是有爬蟲(chóng)的地方,防爬蟲(chóng)絕對(duì)是不可或缺的。網(wǎng)站防爬蟲(chóng)攔截的前提是正確區(qū)分人類(lèi)用戶(hù)和互聯(lián)網(wǎng)機(jī)器人,當(dāng)發(fā)現(xiàn)可疑目標(biāo)時(shí),限制IP地址等措施將阻止您繼續(xù)訪(fǎng)問(wèn)它。
1.構(gòu)造一個(gè)合理的HTTP請(qǐng)求頭。
HTTP請(qǐng)求頭是每次向Web服務(wù)器發(fā)出請(qǐng)求時(shí)傳遞的一組屬性和配置信息。由于瀏覽器和Python爬行器發(fā)送的請(qǐng)求頭是不同的,它們可能會(huì)被反爬行器檢測(cè)到。
2. 設(shè)置cookie的知識(shí)。
琦琦是把雙刃劍。沒(méi)有它,動(dòng)態(tài)IP代理就無(wú)法工作,沒(méi)有它,動(dòng)態(tài)IP代理就無(wú)法工作。網(wǎng)站將通過(guò)cookies跟蹤您的訪(fǎng)問(wèn)。如果它發(fā)現(xiàn)你有爬蟲(chóng)行為,它會(huì)立即中斷你的訪(fǎng)問(wèn),比如你非常快速地填寫(xiě)表單或者在短時(shí)間內(nèi)瀏覽大量頁(yè)面。但是,通過(guò)正確處理Cookie,可以避免許多收集問(wèn)題。建議大家在收集網(wǎng)站的過(guò)程中,先檢查一下這些網(wǎng)站生成的cookies,然后再想想有哪些是爬蟲(chóng)需要處理的。
3.正常時(shí)間訪(fǎng)問(wèn)路徑。
合理地控制收集速度是Python爬蟲(chóng)不應(yīng)該違反的規(guī)則。增加一個(gè)小間隔,每頁(yè)訪(fǎng)問(wèn)時(shí)間盡可能多,可以有效地幫助您避免反爬。
4.使用IP代理服務(wù)。
對(duì)于分布式爬蟲(chóng)和那些被免費(fèi)代理IP攻擊的爬蟲(chóng),使用代理IP將成為你的首選。IP模擬器代理是國(guó)內(nèi)提供優(yōu)質(zhì)IP資源的運(yùn)營(yíng)商。IP數(shù)量大,分布區(qū)域廣,可以滿(mǎn)足分布式爬蟲(chóng)的需求。支持API提取,不限開(kāi)發(fā)語(yǔ)言和終端,非常適合Python爬蟲(chóng)。
首先,檢查JavaScript。
如果出現(xiàn)一個(gè)沒(méi)有任何信息的空白頁(yè)面,則可能是用于創(chuàng)建該頁(yè)面的JavaScript出現(xiàn)了問(wèn)題。
第二,檢查cookie。
如果您無(wú)法登錄或保持登錄狀態(tài),請(qǐng)檢查您的Cookie。
第三,IP地址被封鎖。
如果網(wǎng)頁(yè)無(wú)法打開(kāi),并且發(fā)生IP代理403訪(fǎng)問(wèn)禁止錯(cuò)誤,很可能是該IP地址已被網(wǎng)站封鎖,不再接受您的任何請(qǐng)求。您可以等待IP地址從網(wǎng)站黑名單中刪除,或者您可以選擇使用這樣的代理IP資源。一旦IP被阻塞,您總是可以用一個(gè)新的IP替換它。
除了以上三點(diǎn),Python爬蟲(chóng)在抓取頁(yè)面信息的時(shí)候,也要盡可能的減慢速度。采集速度過(guò)快,不僅更容易被反爬蟲(chóng)屏蔽,也會(huì)給網(wǎng)站造成沉重的負(fù)擔(dān)。嘗試添加延遲到您的爬行器,并嘗試在夜深人靜的時(shí)候運(yùn)行它們。
為什么選擇IP模擬器代理,有大量高度匿名的代理IP資源,分布區(qū)域可以覆蓋大部分1-4線(xiàn)城市,目前已與眾多企業(yè)級(jí)用戶(hù)合作,深受用戶(hù)好評(píng)。有了多年的網(wǎng)絡(luò)爬蟲(chóng)工作經(jīng)驗(yàn),Python爬蟲(chóng)越來(lái)越適合。