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