??前言
本篇文章接《獲取Chatgpt3.5免費(fèi)接口文末付代碼(過Authorization認(rèn)證)》,由于上次更新了代碼后,對(duì)方做了驗(yàn)證,而且驗(yàn)證碼有點(diǎn)難識(shí)別,真人都有點(diǎn)難看明白,喜歡爬蟲類文章的可以訂閱我專欄哦
??歡迎訂閱?? ??歡迎訂閱??
??Python爬蟲項(xiàng)目實(shí)戰(zhàn)系列文章??!
??歡迎訂閱?? ??歡迎訂閱??
例如:
??Python爬蟲項(xiàng)目實(shí)戰(zhàn)系列文章??!
??歡迎訂閱??
【Python爬蟲項(xiàng)目實(shí)戰(zhàn)一】獲取Chatgpt3.5免費(fèi)接口文末付代碼(過Authorization認(rèn)證)
【Python爬蟲項(xiàng)目實(shí)戰(zhàn)二】Chatgpt還原驗(yàn)證算法-解密某寶偽知網(wǎng)數(shù)據(jù)接口
文章來源:http://www.zghlxwxcb.cn/news/detail-426579.html
??歡迎訂閱??
??驗(yàn)證碼識(shí)別的幾個(gè)方法
??百度AI開放平臺(tái)
在對(duì)接之前,我們先看一下識(shí)別效果,可見效果一般,存在個(gè)別識(shí)別不出來,又因?yàn)樾枰顿M(fèi)于是不考慮
??Ddddocr
之前在其他項(xiàng)目中,已經(jīng)介紹過了Dddocr,可以參考我的文章
《Selenium驗(yàn)證碼ddddocr識(shí)別:帶帶ddocr》
識(shí)別驗(yàn)證碼,5行搞定
ocr = ddddocr.DdddOcr()
with open('image.jpg', 'rb') as f:
img_bytes = f.read()
res = ocr.classification(img_bytes)
print(res)
效果和百度一樣遇到幾個(gè)畸形的就直接識(shí)別出錯(cuò),可以看看我的截圖
{"msg":"操作成功","img":"","code":200,"captchaEnabled":true,"uuid":"d14f1de7a0b842cfae525f3389d00f86"}
識(shí)別結(jié)果:9t67
提取結(jié)果:9t6
字符串中不包含 +、-、* 或 / 符號(hào)
{"msg":"操作成功","img":"","code":200,"captchaEnabled":true,"uuid":"010ed8010fe241c9a8c2e8c0989f9084"}
識(shí)別結(jié)果:4j4e7
4j4
字符串中不包含 +、-、* 或 / 符號(hào)
{"msg":"操作成功","img":"","code":200,"captchaEnabled":true,"uuid":"623dd34830554da49911b2ae75507921"}
識(shí)別結(jié)果:3t03
3t0
字符串中不包含 +、-、* 或 / 符號(hào)
{"msg":"操作成功","img":"","code":200,"captchaEnabled":true,"uuid":"164524dd70e74ae18d3782d7887b8974"}
識(shí)別結(jié)果:1*37
提取結(jié)果:1*3
字符串中包含 +、-、* 或 / 符號(hào)
之前識(shí)別發(fā)現(xiàn)效果不理想,但是在驗(yàn)證碼中,存在簡(jiǎn)單的驗(yàn)證碼隨機(jī)刷新,所以我的做法是:舍棄百度AI通過Ddddocr識(shí)別,識(shí)別過程中判斷
"+、-、*、/"逐步往下獲取參數(shù),具體可以往下看
??分析驗(yàn)證碼位數(shù)
在上面的驗(yàn)證碼中,都是10內(nèi)的"+、-、、/“運(yùn)算,所以只需要匹配”+、-、、/"左右的數(shù)字即可
??獲取驗(yàn)證碼接口
def get_captcha():
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Origin': 'https://openmao.panchuang.net',
'Referer': 'https://openmao.panchuang.net/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-site',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
'sec-ch-ua': '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
}
response = requests.get('https://mapi.panchuang.net/api/user/captchaImage', headers=headers)
print(response.text)
return response.json()
??算法識(shí)別匹配
將獲取到的驗(yàn)證碼通過解析base64存放在根目錄
def decode_base64_to_img(base64_str):
img_data = base64.b64decode(base64_str)
with open('image.jpg', 'wb') as f:
f.write(img_data)
img = Image.open('image.jpg')
Ddddocr識(shí)別,識(shí)別到后進(jìn)行特征提取,提取完畢逐步分析,如果提取失敗反復(fù)操作
def verification():
# 驗(yàn)證碼識(shí)別
ocr = ddddocr.DdddOcr()
with open('image.jpg', 'rb') as f:
img_bytes = f.read()
res = ocr.classification(img_bytes)
print(res)
text = res[:3] # 提取前三位子串
print(text) # 輸出:8*4
if "+" in text or "-" in text or "*" in text or "/" in text:
print("字符串中包含 +、-、* 或 / 符號(hào)")
first_char = text[0] # 第一位字符
last_char = text[-1] # 最后一位字符
print("第一位字符:", first_char)
print("最后一位字符:", last_char)
if "+" in text:
result=int(first_char)+int(last_char)
if "-" in text:
result=int(first_char)-int(last_char)
if "*" in text:
result=int(first_char)*int(last_char)
if "/" in text:
result=int(first_char)/int(last_char)
print(f"計(jì)算結(jié)果為{result}")
else:
print("字符串中不包含 +、-、* 或 / 符號(hào)")
result = get_captcha()
# 轉(zhuǎn)換本地
decode_base64_to_img(result['img'])
verification()
最后獲得計(jì)算數(shù)據(jù)
??請(qǐng)求登陸接口
觀察login接口
uuid是和驗(yàn)證碼一起獲取到的
uuid用于定位圖片id,帶著計(jì)算結(jié)果和uuid去login接口請(qǐng)求即可
我將計(jì)算出來的uuid和驗(yàn)證碼結(jié)果,顯示出來進(jìn)行構(gòu)造,這里注釋了請(qǐng)求,因?yàn)檎?qǐng)求了就顯示驗(yàn)證碼過期
print(uuid)
print(result_num)
json_data = {
'username': '****9',
'password': '*****',
'loginTypeEnum': 'ACCOUNT',
'code': result_num,
'uuid': uuid,
}
# response = requests.post('https://mapi.panchuang.net/api/user/login', headers=headers, json=json_data)
# print(response.text)
通過拼接手動(dòng)填上去驗(yàn)證最后獲得token
??總結(jié):
以上就是今天的教程,代碼審核通過后會(huì)放在評(píng)論區(qū),該項(xiàng)目現(xiàn)在只是demo僅供提取計(jì)算驗(yàn)證碼,如果需要Chatgpt3.5接口的可以留言哦,該接口現(xiàn)在用于本人賬號(hào)對(duì)接自動(dòng)回復(fù),長(zhǎng)期互動(dòng)支持的可以互關(guān)哈
推薦我的爬蟲文章
《記一次云之家簽到抓包》
《記一次視頻抓包m3u8解密過程》
《抓包部分軟件時(shí)無網(wǎng)絡(luò)+過代理檢測(cè) 解決辦法 安卓黃鳥httpcanary+vmos》
《Python】記錄抓包分析自動(dòng)領(lǐng)取芝麻HTTP每日免費(fèi)IP(成品+教程)》
《某課抓包視頻 安卓手機(jī):黃鳥+某課app+VirtualXposed虛擬框架》
推薦專欄:
《Python爬蟲腳本項(xiàng)目實(shí)戰(zhàn)》
該專欄往期文章:
《【Python爬蟲項(xiàng)目實(shí)戰(zhàn)一】獲取Chatgpt3.5免費(fèi)接口文末付代碼(過Authorization認(rèn)證)》
??如果感覺看完文章還不過癮,歡迎查看我的其它專欄
??作者對(duì)python有很大的興趣,完成過很多獨(dú)立的項(xiàng)目:例如滇醫(yī)通等等腳本,但是由于版權(quán)的原因下架了,爬蟲這一類審核比較嚴(yán)謹(jǐn),稍有不慎就侵權(quán)違規(guī)了,所以在保證質(zhì)量的同時(shí)會(huì)對(duì)文章進(jìn)行篩選
如果您對(duì)爬蟲感興趣請(qǐng)收藏或者訂閱該專欄哦《Python爬蟲腳本項(xiàng)目實(shí)戰(zhàn)》,如果你有項(xiàng)目歡迎聯(lián)系我,我會(huì)同步教程到本專欄!
??Python爬蟲項(xiàng)目實(shí)戰(zhàn)系列文章?。?br> ??歡迎訂閱??
【Python爬蟲項(xiàng)目實(shí)戰(zhàn)一】獲取Chatgpt3.5免費(fèi)接口文末付代碼(過Authorization認(rèn)證)
【Python爬蟲項(xiàng)目實(shí)戰(zhàn)二】Chatgpt還原驗(yàn)證算法-解密某寶偽知網(wǎng)數(shù)據(jù)接口
??歡迎訂閱??文章來源地址http://www.zghlxwxcb.cn/news/detail-426579.html
到了這里,關(guān)于【Python爬蟲項(xiàng)目實(shí)戰(zhàn)三】Ddddocr識(shí)別Ocr過開放貓驗(yàn)證碼(接Authorization認(rèn)證更新)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!