如果你想讓爬蟲取得好的效果,僅僅寫一個好的爬蟲程序是不夠的,因?yàn)槟愕某绦蚝芸赡芤粏泳捅痪W(wǎng)站的反爬蟲策略屏蔽了。所以在爬行之前,我們需要做好以下準(zhǔn)備。
防爬策略分析:
(1) 如果一個IP被多次訪問而不使用Cookie,該IP將很快被阻止。
(2) 第一次訪問返回cookie值,連續(xù)訪問使用相同的cookie值,幾分鐘后被阻止。用不同的cookie值訪問,大約十分鐘后,IP被阻止。
(3低速(10s以上)單ip訪問不會被封。
(3低速(10s以上)單ip訪問不會被封。
有幾種方法可以防止反爬:
使用隨機(jī)用戶代理:最簡單,即使是新手也能做到。
設(shè)置爬網(wǎng)間隔:簡單,但大大降低了效率。
Available cookies:找出規(guī)則是難是易,需要帶一些經(jīng)過身份驗(yàn)證或解密的值來計算。
代理的使用:簡單、粗暴、有效,但是維護(hù)代理是一個問題。
因?yàn)橐粋€IP無論如何都會被封鎖,所以我已經(jīng)接受了代理IP,常見的有IP模擬器代理等。
爬蟲的策略大致如下:
三個隨機(jī):隨機(jī)Under Armour,隨機(jī)代理和隨機(jī)cookie。
對于使用免費(fèi)IP代理:
你可以參考git:jhao104/proxy上的一個開源項目。我試過幾個類似的,這個好像是最好的。它主要是利用flask來制作一個api來實(shí)時更新可用的ip。它不僅可以抓取各大免費(fèi)代理商的ip,還可以定期檢查ip的可用性。然而,這個項目還有一個問題。例如,如果我將捕獲間隔設(shè)置為10秒,則任務(wù)的執(zhí)行時間可能會超過10秒,并且會報告一個錯誤,整個程序?qū)和!?/div>
對于使用付費(fèi)代理:
對于使用付費(fèi)代理:
如果你想保證爬蟲的質(zhì)量,可以選擇一個高質(zhì)量的付費(fèi)代理IP。
動態(tài)IP模擬器以上的準(zhǔn)備工作是爬蟲之前的就需要做的,然后再進(jìn)行爬蟲程序的工作。
上一篇:如何判斷代理IP的質(zhì)量
下一篇:分享代理IP的使用技巧