您好,登錄后才能下訂單哦!
小編給大家分享一下爬蟲如何做反爬措施,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!
爬蟲常見的反爬措施有三種:
1、header頭部信息
解決方法:
加User-Agent值:
如果不加header頭,部分網(wǎng)站服務(wù)器判斷不到用戶的訪問來源,所以會返回一個(gè)404錯(cuò)誤來告知你是一個(gè)爬蟲,拒絕訪問,解決辦法如下:
headers = { 'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.56 Safari/537.36' }
這樣服務(wù)器就會把用戶當(dāng)做瀏覽器了。
加Referer值
這類反爬網(wǎng)站也很常見,例如美團(tuán),僅僅加User-Agnet還是返回錯(cuò)誤信息,這時(shí)就要把Referer值也加到頭部信息中:
這樣就會返回正常網(wǎng)頁了。
加Host值
根據(jù)同源地址判斷用戶是否為爬蟲,解決辦法為:
加Accept值
之前遇到過這種網(wǎng)站,我加了一圈header頭部信息才成功,最后發(fā)現(xiàn)是需要加Accept值,這類反爬措施的解決辦法為:
2、限制IP的請求數(shù)量
這種就更常見了,大部分網(wǎng)站都有此類反爬措施,也就是說網(wǎng)站服務(wù)器會根據(jù)某個(gè)ip在特定時(shí)間內(nèi)的訪問頻率來判斷是否為爬蟲,然后把你把你拉進(jìn)“黑名單”,素質(zhì)好的給你返回403或者出來個(gè)驗(yàn)證碼,素質(zhì)不好的會給你返回兩句臟話。此種情況有兩種解決辦法:
①降低爬蟲請求速率,但是會降低效率;
②添加代理ip,代理ip又分為付費(fèi)的和不要錢的,前者比較穩(wěn)定,后者經(jīng)常斷線。
添加格式為:
3、Ajax動態(tài)請求加載
這類一般是動態(tài)網(wǎng)頁,無法直接找到數(shù)據(jù)接口,以某易新聞網(wǎng)站為例:
我想爬取該網(wǎng)頁內(nèi)的新聞圖片,發(fā)現(xiàn)它的網(wǎng)頁url一直不變,但是下拉網(wǎng)頁的時(shí)候會一直加載圖片,那么我們該怎么辦呢?
首先按照開頭方式打開流量分析工具
點(diǎn)擊左上角“垃圾桶”圖標(biāo)清空緩存,然后下拉新聞網(wǎng)頁:
會出現(xiàn)一大堆東西,但是不用慌,我們可以根據(jù)類型去尋找,一般圖片信息肯定實(shí)在html、js或json格式的文件中,一個(gè)一個(gè)點(diǎn)進(jìn)去看看,很快就找到了結(jié)果:
結(jié)果中把callback去掉之后就是個(gè)json文件,它的url為:
看完了這篇文章,相信你對爬蟲如何做反爬措施有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。