Python爬蟲突破反爬蟲機(jī)制知識(shí)點(diǎn)總結(jié)
1、構(gòu)建合理的HTTP請求標(biāo)頭。
HTTP的請求頭是一組屬性和配置信息,當(dāng)您發(fā)送一個(gè)請求到網(wǎng)絡(luò)服務(wù)器時(shí)。因?yàn)闉g覽器和Python爬蟲發(fā)送的請求頭不同,反爬行器很可能會(huì)被檢測到。
2、建立學(xué)習(xí)cookie。
Cookie是一把雙刃劍,有它不行,沒有它更不行。站點(diǎn)將通過cookie來追蹤你的訪問情況,如果發(fā)現(xiàn)你有爬蟲行為,將立即中斷您的訪問,例如,填寫表格時(shí)速度過快,或在短時(shí)間內(nèi)瀏覽大量網(wǎng)頁。而且對(duì)cookies的正確處理,也可以避免許多采集問題,建議在收集網(wǎng)站的過程中,檢查一下這些網(wǎng)站生成的cookie,然后想想哪個(gè)是爬蟲需要處理的。
3、正常時(shí)差路徑。
Python爬行器不應(yīng)破壞采集速度的原則,盡可能在每一頁訪問時(shí)間內(nèi)增加一小段間隔,能有效地幫助您避免反爬行。
4、使用代理IP,對(duì)已經(jīng)遇到過反爬蟲的分布式爬蟲來說,使用代理IP將成為您的首選。
談到Python爬蟲的發(fā)展歷史,那簡直就是與反爬蟲相戀的血淚史。因特網(wǎng)上,有網(wǎng)絡(luò)爬蟲的地方,絕對(duì)少不了反爬蟲的身影。對(duì)網(wǎng)站進(jìn)行反爬蟲的截取,前提是要正確區(qū)分人與網(wǎng)絡(luò)機(jī)器人,發(fā)現(xiàn)可疑目標(biāo)時(shí),通過限制IP地址等措施,阻止您繼續(xù)訪問。
知識(shí)點(diǎn)擴(kuò)展:
python3爬蟲--反爬蟲應(yīng)對(duì)機(jī)制
:
反爬蟲更多是一種攻防戰(zhàn),網(wǎng)絡(luò)爬蟲一般有網(wǎng)頁爬蟲和接口爬蟲的方式;針對(duì)網(wǎng)站的反爬蟲處理來采取對(duì)應(yīng)的應(yīng)對(duì)機(jī)制,一般需要考慮以下方面:
①訪問終端限制:這種可通過偽造動(dòng)態(tài)的UA實(shí)現(xiàn);
②訪問次數(shù)限制:網(wǎng)站一般通過cookie/IP定位,可通過禁用cookie,或使用cookie池/IP池來反制;
③訪問時(shí)間限制:延遲請求應(yīng)對(duì);
④盜鏈問題:通俗講就是,某個(gè)網(wǎng)頁的請求是有跡可循的,比如知乎的問題回答詳情頁,正常用戶行為必然是先進(jìn)入問題頁,在進(jìn)入回答詳情頁,有嚴(yán)格的請求順序,如果之間跳過前面請求頁面就有可能被判定為到了,通過偽造請求頭可以解決這個(gè)問題;
具體的反爬蟲策略:
①驗(yàn)證碼
應(yīng)對(duì):簡單的驗(yàn)證碼可通過機(jī)器學(xué)習(xí)識(shí)別,準(zhǔn)確率可高達(dá),50-60%;復(fù)雜的可通過專門的打碼平臺(tái)人工打碼(依據(jù)驗(yàn)證碼的復(fù)雜度,打碼工人平均每碼收1-2分錢)
②封ip(容易誤殺)
應(yīng)對(duì):通過ip代理池/vps撥號(hào)獲取ip方式,可用低成本的獲取幾十萬ip
③滑動(dòng)驗(yàn)證碼:相比常規(guī)的驗(yàn)證碼易被機(jī)器學(xué)習(xí)識(shí)別,滑動(dòng)驗(yàn)證有一定的優(yōu)勢
應(yīng)對(duì):模擬滑動(dòng)來驗(yàn)證
④關(guān)聯(lián)上下文/防盜鏈:利用token/cookie的記錄能力,來關(guān)聯(lián)請求的上下文,通過判斷請求是否走了完整的流程來判定是否是爬蟲;重而反爬蟲(知乎,頭條都有該機(jī)制)
應(yīng)對(duì):分析協(xié)議,進(jìn)行全量模擬
⑤javascript 參與運(yùn)算:利用簡單爬蟲無法進(jìn)行json運(yùn)算的特征,對(duì)中間結(jié)果進(jìn)行js解析/運(yùn)算
應(yīng)對(duì):可以通過自帶 js 引擎模塊或直接使用 phantomjs 等無端瀏覽器進(jìn)行自動(dòng)化解析
⑥session封禁:session請求超過閾值,從而封禁(容易導(dǎo)致誤殺)
⑦UA封禁:ua請求超過閾值,從而封禁(容易導(dǎo)致誤殺)
⑧web-fongt反爬蟲機(jī)制:源代碼不展示內(nèi)容,而是提供字符集,在頁面使用了font-face定義了字符集,并通過unicode去映射展示
⑨其他:比如代碼混淆、動(dòng)態(tài)加密方案、假數(shù)據(jù)等方式
到此這篇關(guān)于Python爬蟲突破反爬蟲機(jī)制知識(shí)點(diǎn)總結(jié)的文章就介紹到這了,更多相關(guān)Python爬蟲如何突破反爬蟲機(jī)制內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。