python如何實(shí)現(xiàn)反爬?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
在成都做網(wǎng)站、成都網(wǎng)站制作中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報(bào)的無錫營銷推廣。成都創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站建設(shè)10年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。網(wǎng)絡(luò)爬蟲,是一個(gè)自動(dòng)提取網(wǎng)頁的程序,它為搜索引擎從萬維網(wǎng)上下載網(wǎng)頁,是搜索引擎的重要組成。但是當(dāng)網(wǎng)絡(luò)爬蟲被濫用后,互聯(lián)網(wǎng)上就出現(xiàn)太多同質(zhì)的東西,原創(chuàng)得不到保護(hù)。于是,很多網(wǎng)站開始反網(wǎng)絡(luò)爬蟲,想方設(shè)法保護(hù)自己的內(nèi)容。
一: User-Agent +Referer檢測
User-Agent 是HTTP協(xié)議的中的一個(gè)字段, 其作用是描述發(fā)出HTTP請(qǐng)求的終端的一些信息。
使得服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng)及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。
服務(wù)器通過這個(gè)字段就可以知道訪問網(wǎng)站的是什么人。對(duì)于不是正常瀏覽器的用戶進(jìn)行屏蔽。
解決方案:
偽裝瀏覽器的User-Agent,因?yàn)槊總€(gè)瀏覽器的User-Agent不一樣,并且所有的用戶都能使用瀏覽器。所有每次請(qǐng)求的時(shí)候條件瀏覽器的User-Agent,就能解決UA檢測
Referer是header的一部分,當(dāng)瀏覽器向web服務(wù)器發(fā)送請(qǐng)求的時(shí)候,一般會(huì)帶上Referer,告訴服務(wù)器我是從哪個(gè)頁面鏈接過來的。例如有一些圖片網(wǎng)站在你請(qǐng)求圖片的時(shí)候,就會(huì)檢測你的Referer值,如果Referer不符合,不會(huì)返回正常的圖片。
解決方案:
在檢測referer的請(qǐng)求中,攜帶符合的referer值。
二: js混淆和渲染
所謂 JavaScript 混淆,基本就是:
1.去掉一些實(shí)際沒有調(diào)用的函數(shù)。
2.將零散的變量聲明合并。
3.邏輯函數(shù)的精簡。
4.變量名的簡化。具體要看不同的壓縮工具的考慮優(yōu)劣。常見的有UglifyJS、JScrambler等工具。
js渲染其實(shí)就是對(duì)HTML頁面的修改。比如有一些網(wǎng)頁本身沒有返回?cái)?shù)據(jù),數(shù)據(jù)是經(jīng)過js加載之后添加到HTML當(dāng)中的。當(dāng)遇到這種情況的時(shí)候,我們要知道爬蟲是不會(huì)執(zhí)行JavaScript操作。所以需要用其他的方法處理。
解決方案:
1.通過閱讀網(wǎng)站js源碼,找到關(guān)鍵的代碼,并用python實(shí)現(xiàn)。
2.通過閱讀網(wǎng)站js源碼,找到關(guān)鍵的代碼,用PyV8,execjs等庫直接執(zhí)行js代碼。
3.通過selenium庫直接模擬瀏覽器環(huán)境
三:IP限制頻次
WEB系統(tǒng)都是走h(yuǎn)ttp協(xié)議跟WEB容器連通的,每次請(qǐng)求至少會(huì)產(chǎn)生一次客戶端與服務(wù)器的tcp連接。
對(duì)于服務(wù)端來說可以很清楚的查看到,一個(gè)ip地址在單位時(shí)間內(nèi)發(fā)起的請(qǐng)求。
當(dāng)請(qǐng)求數(shù)超過一定的值之后,就可判斷為非正常的用戶請(qǐng)求。
解決方案:
1.自行設(shè)計(jì)ip代理池,通過輪換的方式,每次請(qǐng)求攜帶不同的代理地址。
2.ADSL動(dòng)態(tài)撥號(hào)他有個(gè)獨(dú)有的特點(diǎn),每撥一次號(hào),就獲取一個(gè)新的IP。也就是它的IP是不固定的。
四:驗(yàn)證碼
驗(yàn)證碼(CAPTCHA)是“Completely Automated PublicTuring test to tell Computers and HumansApart”(全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測試)的縮寫,是一種區(qū)分用戶是計(jì)算機(jī)還是人的公共全自動(dòng)程序。
可以防止:惡意破解密碼、刷票、論壇灌水,有效防止某個(gè)黑客對(duì)某一個(gè)特定注冊(cè)用戶用特定程序暴力破解方式進(jìn)行不斷的登陸嘗試。
這個(gè)問題可以由計(jì)算機(jī)生成并評(píng)判,但是必須只有人類才能解答。由于計(jì)算機(jī)無法解答CAPTCHA的問題,所以回答出問題的用戶就可以被認(rèn)為是人類。
解決方案:
1.手動(dòng)識(shí)別驗(yàn)證碼
2.pytesseract識(shí)別簡單的驗(yàn)證碼
3.對(duì)接打碼平臺(tái)
4.機(jī)器學(xué)習(xí)
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)python如何實(shí)現(xiàn)反爬大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文題目:python如何實(shí)現(xiàn)反爬-創(chuàng)新互聯(lián)
分享地址:http://jinyejixie.com/article28/djshcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、定制開發(fā)、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容