溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python爬蟲(chóng)突破反爬蟲(chóng)機(jī)制知識(shí)點(diǎn)有哪些

發(fā)布時(shí)間:2021-11-10 10:44:19 來(lái)源:億速云 閱讀:164 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“Python爬蟲(chóng)突破反爬蟲(chóng)機(jī)制知識(shí)點(diǎn)有哪些”,在日常操作中,相信很多人在Python爬蟲(chóng)突破反爬蟲(chóng)機(jī)制知識(shí)點(diǎn)有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”P(pán)ython爬蟲(chóng)突破反爬蟲(chóng)機(jī)制知識(shí)點(diǎn)有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

1、構(gòu)建合理的HTTP請(qǐng)求標(biāo)頭。

HTTP的請(qǐng)求頭是一組屬性和配置信息,當(dāng)您發(fā)送一個(gè)請(qǐng)求到網(wǎng)絡(luò)服務(wù)器時(shí)。因?yàn)闉g覽器和Python爬蟲(chóng)發(fā)送的請(qǐng)求頭不同,反爬行器很可能會(huì)被檢測(cè)到。

2、建立學(xué)習(xí)cookie。

Cookie是一把雙刃劍,有它不行,沒(méi)有它更不行。站點(diǎn)將通過(guò)cookie來(lái)追蹤你的訪問(wèn)情況,如果發(fā)現(xiàn)你有爬蟲(chóng)行為,將立即中斷您的訪問(wèn),例如,填寫(xiě)表格時(shí)速度過(guò)快,或在短時(shí)間內(nèi)瀏覽大量網(wǎng)頁(yè)。而且對(duì)cookies的正確處理,也可以避免許多采集問(wèn)題,建議在收集網(wǎng)站的過(guò)程中,檢查一下這些網(wǎng)站生成的cookie,然后想想哪個(gè)是爬蟲(chóng)需要處理的。

3、正常時(shí)差路徑。

Python爬行器不應(yīng)破壞采集速度的原則,盡可能在每一頁(yè)訪問(wèn)時(shí)間內(nèi)增加一小段間隔,能有效地幫助您避免反爬行。

4、使用代理IP,對(duì)已經(jīng)遇到過(guò)反爬蟲(chóng)的分布式爬蟲(chóng)來(lái)說(shuō),使用代理IP將成為您的首選。

談到Python爬蟲(chóng)的發(fā)展歷史,那簡(jiǎn)直就是與反爬蟲(chóng)相戀的血淚史。因特網(wǎng)上,有網(wǎng)絡(luò)爬蟲(chóng)的地方,絕對(duì)少不了反爬蟲(chóng)的身影。對(duì)網(wǎng)站進(jìn)行反爬蟲(chóng)的截取,前提是要正確區(qū)分人與網(wǎng)絡(luò)機(jī)器人,發(fā)現(xiàn)可疑目標(biāo)時(shí),通過(guò)限制IP地址等措施,阻止您繼續(xù)訪問(wèn)。

知識(shí)點(diǎn)擴(kuò)展:

python3爬蟲(chóng)--反爬蟲(chóng)應(yīng)對(duì)機(jī)制

前言:

反爬蟲(chóng)更多是一種攻防戰(zhàn),網(wǎng)絡(luò)爬蟲(chóng)一般有網(wǎng)頁(yè)爬蟲(chóng)和接口爬蟲(chóng)的方式;針對(duì)網(wǎng)站的反爬蟲(chóng)處理來(lái)采取對(duì)應(yīng)的應(yīng)對(duì)機(jī)制,一般需要考慮以下方面:

①訪問(wèn)終端限制:這種可通過(guò)偽造動(dòng)態(tài)的UA實(shí)現(xiàn);

②訪問(wèn)次數(shù)限制:網(wǎng)站一般通過(guò)cookie/IP定位,可通過(guò)禁用cookie,或使用cookie池/IP池來(lái)反制;

③訪問(wèn)時(shí)間限制:延遲請(qǐng)求應(yīng)對(duì);

④盜鏈問(wèn)題:通俗講就是,某個(gè)網(wǎng)頁(yè)的請(qǐng)求是有跡可循的,比如知乎的問(wèn)題回答詳情頁(yè),正常用戶行為必然是先進(jìn)入問(wèn)題頁(yè),在進(jìn)入回答詳情頁(yè),有嚴(yán)格的請(qǐng)求順序,如果之間跳過(guò)前面請(qǐng)求頁(yè)面就有可能被判定為到了,通過(guò)偽造請(qǐng)求頭可以解決這個(gè)問(wèn)題;

具體的反爬蟲(chóng)策略:

①驗(yàn)證碼

應(yīng)對(duì):簡(jiǎn)單的驗(yàn)證碼可通過(guò)機(jī)器學(xué)習(xí)識(shí)別,準(zhǔn)確率可高達(dá),50-60%;復(fù)雜的可通過(guò)專門(mén)的打碼平臺(tái)人工打碼(依據(jù)驗(yàn)證碼的復(fù)雜度,打碼工人平均每碼收1-2分錢)

②封ip(容易誤殺)

應(yīng)對(duì):通過(guò)ip代理池/vps撥號(hào)獲取ip方式,可用低成本的獲取幾十萬(wàn)ip

③滑動(dòng)驗(yàn)證碼:相比常規(guī)的驗(yàn)證碼易被機(jī)器學(xué)習(xí)識(shí)別,滑動(dòng)驗(yàn)證有一定的優(yōu)勢(shì)

應(yīng)對(duì):模擬滑動(dòng)來(lái)驗(yàn)證

④關(guān)聯(lián)上下文/防盜鏈:利用token/cookie的記錄能力,來(lái)關(guān)聯(lián)請(qǐng)求的上下文,通過(guò)判斷請(qǐng)求是否走了完整的流程來(lái)判定是否是爬蟲(chóng);重而反爬蟲(chóng)(知乎,頭條都有該機(jī)制)

應(yīng)對(duì):分析協(xié)議,進(jìn)行全量模擬

⑤javascript 參與運(yùn)算:利用簡(jiǎn)單爬蟲(chóng)無(wú)法進(jìn)行json運(yùn)算的特征,對(duì)中間結(jié)果進(jìn)行js解析/運(yùn)算

應(yīng)對(duì):可以通過(guò)自帶 js 引擎模塊或直接使用 phantomjs 等無(wú)端瀏覽器進(jìn)行自動(dòng)化解析

⑥session封禁:session請(qǐng)求超過(guò)閾值,從而封禁(容易導(dǎo)致誤殺)

⑦UA封禁:ua請(qǐng)求超過(guò)閾值,從而封禁(容易導(dǎo)致誤殺)

⑧web-fongt反爬蟲(chóng)機(jī)制:源代碼不展示內(nèi)容,而是提供字符集,在頁(yè)面使用了font-face定義了字符集,并通過(guò)unicode去映射展示

⑨其他:比如代碼混淆、動(dòng)態(tài)加密方案、假數(shù)據(jù)等方式

到此,關(guān)于“Python爬蟲(chóng)突破反爬蟲(chóng)機(jī)制知識(shí)點(diǎn)有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI