使用代理IP不是萬能,只是爬蟲策略之一
在使用代理ip的過程中,我們發(fā)現(xiàn)大部分用戶朋友都有這種想法:擁有優(yōu)質(zhì)代理IP,爬蟲可以暢通無阻。如果爬蟲做的不好是代理IP的鍋,他們認為是優(yōu)質(zhì)的代理IP等同于一個好的爬蟲策略,有了這樣一個代理IP,你不必擔(dān)心爬蟲策略。其實這種想法是片面的,使用代理IP不是萬能,只是爬蟲策略之一,具體的爬蟲策略要根據(jù)目標(biāo)網(wǎng)站的反爬策略來制定,也可以稱為反爬策略。
一般反爬蟲措施如下:
1.代碼級限制需要登錄訪問權(quán)限。一天只能訪問一定數(shù)量的頁面,在沒有登錄的情況下只能查看幾個頁面,比如列表信息類網(wǎng)站。已經(jīng)有很多一天6個的列表詳情頁了,再多的頁面就會有惡意。這種限制需要大量的帳戶來進行爬蟲爬行。當(dāng)然,除了完全限制之外,還可以限制訪問若干個以上的彈窗驗證碼,驗證后再繼續(xù)訪問,這樣至少不會有少數(shù)真實用戶無法訪問。
2.提前獲取IP代理池的IP列表,直接在防火墻層面進行黑客攻擊,可以避免一些高端的問題。
3.在Nginx或者代碼級別把所有常見的爬蟲頭信息都拉黑。據(jù)說一些大網(wǎng)站把python中常見的爬蟲頭信息全部黑掉了,增加了基礎(chǔ)爬蟲的代碼成本。
4.高端的反爬蟲就是每隔幾個小時就要切換頁面代碼或者接口數(shù)據(jù)結(jié)構(gòu)。我記得那是個寶藏。對于爬蟲來說,它可能只是寫這種類型的代碼,然后整個頁面代碼和數(shù)據(jù)結(jié)構(gòu)使用一套新的非常高級的對策。
5.數(shù)據(jù)加擾:每個頁面都有一些加密和解密規(guī)則,或者每個頁面都有不同的加擾數(shù)據(jù)。很有可能你抓取的內(nèi)容含有一些虛假數(shù)據(jù)或者加密數(shù)據(jù),這也增加了爬蟲的成本。比如可以在網(wǎng)頁中添加一些具有相同樣式或名稱的關(guān)鍵隱藏字段,而這些隱藏字段甚至不會出現(xiàn)在頁面上,導(dǎo)致爬蟲很難找到關(guān)鍵元素。
從上面可以看出,爬蟲策略不僅僅是使用高質(zhì)量的代理IP,還要根據(jù)目標(biāo)網(wǎng)站反爬策略的實際分析,制定具體的反爬策略,當(dāng)然是高質(zhì)量的代理IP一定是必不可少。