av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

python 常見的反爬蟲策略

瀏覽:4日期:2022-07-09 16:54:40

1、判斷請求頭來進(jìn)行反爬

這是很早期的網(wǎng)站進(jìn)行的反爬方式

User-Agent 用戶代理referer 請求來自哪里cookie 也可以用來做訪問憑證解決辦法:請求頭里面添加對應(yīng)的參數(shù)(復(fù)制瀏覽器里面的數(shù)據(jù))

2、根據(jù)用戶行為來進(jìn)行反爬

請求頻率過高,服務(wù)器設(shè)置規(guī)定時間之內(nèi)的請求閾值 解決辦法:降低請求頻率或者使用代理(IP代理)網(wǎng)頁中設(shè)置一些陷阱(正常用戶訪問不到但是爬蟲可以訪問到) 解決辦法:分析網(wǎng)頁,避開這些特殊陷阱請求間隔太短,返回相同的數(shù)據(jù)解決辦法:增加請求間隔

3、js加密

反爬方式中較為難處理的一類。js加密的原理:服務(wù)器響應(yīng)給瀏覽器的js文件,可以動態(tài)的生成一些加密參數(shù),瀏覽器會根據(jù)js的計算 得到這些參數(shù),在請求中帶入進(jìn)來,如果請求中沒有這些參數(shù),那么服務(wù)器就任務(wù)請求無效。

python 常見的反爬蟲策略

4、字體加密

字體反爬,是一種常見的反爬技術(shù),網(wǎng)站采用了自定義的字體文件,在瀏覽器上正常顯示,但是爬蟲抓取下來的數(shù)據(jù)要么就是亂碼,要么就是變成其他字符。采用自定義字體文件是CSS3的新特性,熟悉前端的同學(xué)可能知道,就是font-face屬性。

python 常見的反爬蟲策略

5、登錄驗(yàn)證碼

使用Python爬取網(wǎng)頁內(nèi)容時往往會遇到使用驗(yàn)證碼登陸才能訪問其網(wǎng)站,不同網(wǎng)站的使用的驗(yàn)證碼也不同,在最開始使用簡單驗(yàn)證碼,識別數(shù)字,但是隨著反爬的不斷發(fā)展,慢慢設(shè)計出了更多復(fù)雜的驗(yàn)證碼,比如:內(nèi)容驗(yàn)證碼、滑動驗(yàn)證碼、圖片拼接驗(yàn)證碼等等。網(wǎng)上有很多打碼平臺,通過注冊賬號,調(diào)用平臺接口,進(jìn)行驗(yàn)證碼的驗(yàn)證。

python 常見的反爬蟲策略

6、md5相關(guān)知識

MD5,消息摘要算法,一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。MD5是最常見的摘要算法,速度很快,生成結(jié)果是固定的128 bit字節(jié),通常用一個32位的16進(jìn)制字符串表示。MD5的特點(diǎn):1.不可逆:不能從密文推導(dǎo)出明文。2.不管明文長度為多少,密文的長度都固定。3.密文之間不會重復(fù)。

import hashlibprint(hashlib.md5(’python’.encode()).hexdigest())

字符串python加密后的結(jié)果:

23eeeb4347bdd26bfc6b7ee9a3b755dd

7、base64

Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進(jìn)制數(shù)據(jù)的方法。Base64編碼是從二進(jìn)制到字符的過程,可用于在HTTP環(huán)境下傳遞較長的標(biāo)識信息。采用Base64編碼具有不可讀性,需要解碼后才能閱讀。

import base64#python中base64的加密print(base64.b64encode(’python’.encode()).decode())#python中base64的解密print(base64.b64decode(’Y2hpbmE=’.encode()).decode())

結(jié)果:

cHl0aG9uchina

二、驗(yàn)證碼驗(yàn)證

自己動手看驗(yàn)證碼(古詩詞網(wǎng))

import requestsurl = 'gushiwen.org'session = requests.Session()text = session.get(url).text# 解析響應(yīng),找到驗(yàn)證碼的圖片地址,# 下載驗(yàn)證碼圖片,保存with open(’code.jpg’, ’wb’)as f: f.write(’驗(yàn)證碼的url地址’.encode())code = input(’驗(yàn)證碼是: ’)login_url = 'login.com'data = { 'username': ’xx’, 'password': ’xx’, 'code': code}requests.post(url, data=data)

使用打碼平臺(圖鑒)

新建一個captcha_api.py

import jsonimport requestsimport base64from io import BytesIOfrom PIL import Imagefrom sys import version_infodef base64_api(uname, pwd, img): img = img.convert(’RGB’) buffered = BytesIO() img.save(buffered, format='JPEG') if version_info.major >= 3: b64 = str(base64.b64encode(buffered.getvalue()), encoding=’utf-8’) else: b64 = str(base64.b64encode(buffered.getvalue())) data = {'username': uname, 'password': pwd, 'image': b64} result = json.loads(requests.post('http://api.ttshitu.com/base64', json=data).text) if result[’success’]: return result['data']['result'] else: return result['message'] return ''def request_captcha(uname, pwd, img_path): img_path = img_path # 待驗(yàn)證的驗(yàn)證碼路徑 img = Image.open(img_path) result = base64_api(uname, pwd, img) # 傳入賬號 密碼 和圖片 print(result)

新建use_code.py,調(diào)用接口

img_path = ’圖片路徑’from captcha_api import request_captcharet = request_captcha('賬號', '密碼', img_path)

以上就是python 常見的反爬蟲策略的詳細(xì)內(nèi)容,更多關(guān)于python反爬蟲的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产一级二级片 | 午夜一级片 | 欧洲一区二区 | 国产999视频| 黄色网址在线免费观看 | 狠狠操综合 | 国产精品美女久久久久久久久 | 日韩精品在线播放 | 亚洲精品乱码久久久久久 | 亚洲激情视频 | 黄色高清网站 | 日韩欧美中文字幕在线观看 | 欧美成人精品一区二区三区 | 好色婷婷| 欧美一级片免费 | 欧美成人小视频 | 日韩av免费在线 | 谁有毛片网站 | 亚洲欧美视频在线观看 | 亚洲激情综合 | 国产一区久久 | 国产免费一区二区三区免费视频 | 一级片日韩 | 夜夜操夜夜操 | 国产欧美综合一区二区三区 | 中文字幕亚洲精品 | 成人做爰9片免费视频 | 天天干网站 | 午夜看片| 日韩精品免费看 | 一区二区三区国产精品 | 久久888| 日韩成人一区 | 午夜国产在线观看 | 久久一区视频 | 日韩在线视频一区 | 日本久久久久久 | 天天干天天操天天干 | 国产日本在线 | 亚洲欧美天堂 | 高潮毛片又色又爽免费 |