小編給大家分享一下爬蟲如何做反爬措施,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討方法吧!
創(chuàng)新互聯(lián)公司是專業(yè)的順城網(wǎng)站建設(shè)公司,順城接單;提供網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行順城網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
爬蟲常見的反爬措施有三種:
1、header頭部信息
解決方法:
加User-Agent值:
如果不加header頭,部分網(wǎng)站服務(wù)器判斷不到用戶的訪問來(lái)源,所以會(huì)返回一個(gè)404錯(cuò)誤來(lái)告知你是一個(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ù)器就會(huì)把用戶當(dāng)做瀏覽器了。
加Referer值
這類反爬網(wǎng)站也很常見,例如美團(tuán),僅僅加User-Agnet還是返回錯(cuò)誤信息,這時(shí)就要把Referer值也加到頭部信息中:
這樣就會(huì)返回正常網(wǎng)頁(yè)了。
加Host值
根據(jù)同源地址判斷用戶是否為爬蟲,解決辦法為:
加Accept值
之前遇到過(guò)這種網(wǎng)站,我加了一圈header頭部信息才成功,最后發(fā)現(xiàn)是需要加Accept值,這類反爬措施的解決辦法為:
2、限制IP的請(qǐng)求數(shù)量
這種就更常見了,大部分網(wǎng)站都有此類反爬措施,也就是說(shuō)網(wǎng)站服務(wù)器會(huì)根據(jù)某個(gè)ip在特定時(shí)間內(nèi)的訪問頻率來(lái)判斷是否為爬蟲,然后把你把你拉進(jìn)“黑名單”,素質(zhì)好的給你返回403或者出來(lái)個(gè)驗(yàn)證碼,素質(zhì)不好的會(huì)給你返回兩句臟話。此種情況有兩種解決辦法:
①降低爬蟲請(qǐng)求速率,但是會(huì)降低效率;
②添加代理ip,代理ip又分為付費(fèi)的和不要錢的,前者比較穩(wěn)定,后者經(jīng)常斷線。
添加格式為:
3、Ajax動(dòng)態(tài)請(qǐng)求加載
這類一般是動(dòng)態(tài)網(wǎng)頁(yè),無(wú)法直接找到數(shù)據(jù)接口,以某易新聞網(wǎng)站為例:
我想爬取該網(wǎng)頁(yè)內(nèi)的新聞圖片,發(fā)現(xiàn)它的網(wǎng)頁(yè)url一直不變,但是下拉網(wǎng)頁(yè)的時(shí)候會(huì)一直加載圖片,那么我們?cè)撛趺崔k呢?
首先按照開頭方式打開流量分析工具
點(diǎn)擊左上角“垃圾桶”圖標(biāo)清空緩存,然后下拉新聞網(wǎng)頁(yè):
會(huì)出現(xiàn)一大堆東西,但是不用慌,我們可以根據(jù)類型去尋找,一般圖片信息肯定實(shí)在html、js或json格式的文件中,一個(gè)一個(gè)點(diǎn)進(jìn)去看看,很快就找到了結(jié)果:
結(jié)果中把callback去掉之后就是個(gè)json文件,它的url為:
看完了這篇文章,相信你對(duì)爬蟲如何做反爬措施有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!