使用Python高效解決攜程中文點(diǎn)選驗(yàn)證碼識(shí)別并自動(dòng)登陸的方法
這兩天有一個(gè)業(yè)務(wù)需求,需要登陸不同的攜程賬號(hào)獲取訂單信息,但是由于攜程有驗(yàn)證碼檢測機(jī)制,而且是個(gè)中文驗(yàn)證碼比較難識(shí)別,試了幾家人工打碼平臺(tái),要么貴,要么延時(shí)高,要么沒辦法24小時(shí)運(yùn)行。最后總算讓我找到一個(gè)可以通過機(jī)器識(shí)別出來的API接口,準(zhǔn)確率超級(jí)高而且延遲只有0.03s左右。(不算上傳圖片的時(shí)間)
首先看一下攜程驗(yàn)證碼長啥樣。。。
攜程驗(yàn)證碼分為小圖和大圖部分,小圖部分如下:



大圖部分的樣子如下:

原理是要先識(shí)別小圖的文字,然后點(diǎn)擊到大圖對(duì)應(yīng)文字的正確位置。
這里借助了圖靈驗(yàn)證碼識(shí)別平臺(tái),不是人工打碼的,所以識(shí)別很快,準(zhǔn)確率也挺高:
在線圖片驗(yàn)證碼識(shí)別平臺(tái)-圖像驗(yàn)證碼識(shí)別打碼平臺(tái)-圖片驗(yàn)證碼打碼平臺(tái)-圖靈
官網(wǎng)網(wǎng)址:http://fdyscloud.com.cn
進(jìn)入圖靈驗(yàn)證碼識(shí)別平臺(tái),點(diǎn)擊中文類型:

可以看到圖靈識(shí)別平臺(tái)提供的幾個(gè)中文識(shí)別模型。我們這里需要用到的就是 中文通用類型 和 圖片識(shí)別類型9。分別點(diǎn)進(jìn)去,會(huì)告訴你對(duì)應(yīng)的模型ID和接口的調(diào)用方式。
我們也可以直接在網(wǎng)站上先上傳圖片測試一下該模型的識(shí)別效果,如下圖:

可以看到效果是很好的,所有的字和位置都識(shí)別得相當(dāng)準(zhǔn)確!牛!
廢話不多說,直接發(fā)調(diào)用的Python代碼吧,其實(shí)網(wǎng)站上也寫得很詳細(xì)了。
小圖部分識(shí)別:
import base64
import json
import requests
# 復(fù)制以下代碼,只需填入自己的賬號(hào)密碼、待識(shí)別的圖片路徑即可。
# 關(guān)于ID:選做識(shí)別的模型ID,會(huì)自動(dòng)生成,無需修改。
def b64_api(username, password, img_path, ID):
with open(img_path, 'rb') as f:
b64_data = base64.b64encode(f.read())
b64 = b64_data.decode()
data = {"username": username, "password": password, "ID": ID, "b64": b64}
data_json = json.dumps(data)
result = json.loads(requests.post("http://www.tulingtech.xyz/tuling/predict", data=data_json).text)
return result
if __name__ == "__main__":
img_path = "C:/Users/Administrator/Desktop/file.jpg"
result = b64_api(username="你的賬號(hào)", password="你的密碼", img_path=img_path, ID="82927344")
print(result)大圖部分識(shí)別:
import base64
import json
import requests
# 復(fù)制以下代碼,只需填入自己的賬號(hào)密碼、待識(shí)別的圖片路徑即可。
# 關(guān)于ID:選做識(shí)別的模型ID,會(huì)自動(dòng)生成,無需修改。
def b64_api(username, password, img_path, ID):
with open(img_path, 'rb') as f:
b64_data = base64.b64encode(f.read())
b64 = b64_data.decode()
data = {"username": username, "password": password, "ID": ID, "b64": b64}
data_json = json.dumps(data)
result = json.loads(requests.post("http://www.tulingtech.xyz/tuling/predict", data=data_json).text)
return result
if __name__ == "__main__":
img_path = "C:/Users/Administrator/Desktop/file.jpg"
result = b64_api(username="你的賬號(hào)", password="你的密碼", img_path=img_path, ID="09322322")
print(result)兩者?除了post data里面的模型ID值不一樣,其他部分都是一樣的。
至此徹底解決了攜程中文點(diǎn)選驗(yàn)證碼的識(shí)別問題!?。?/p>
到此這篇關(guān)于使用Python高效解決攜程中文點(diǎn)選驗(yàn)證碼識(shí)別并自動(dòng)登陸的方法的文章就介紹到這了,更多相關(guān)Python解決攜程中文點(diǎn)選驗(yàn)證碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python自動(dòng)修改電腦靜態(tài)IP地址的實(shí)現(xiàn)示例
通過Python自動(dòng)修改電腦的靜態(tài)IP地址可以極大地提高我們的工作效率,減少手動(dòng)修改IP地址帶來的錯(cuò)誤,本文就來介紹一下Python自動(dòng)修改電腦靜態(tài)IP地址的實(shí)現(xiàn)示例,感興趣的可以了解一下2023-11-11
python RabbitMQ 使用詳細(xì)介紹(小結(jié))
這篇文章主要介紹了python RabbitMQ 使用詳細(xì)介紹(小結(jié)),詳細(xì)的介紹了RabbitMQ的概念以及使用,對(duì)學(xué)習(xí)RabbitMQ有一定的幫助,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-11-11
Python實(shí)現(xiàn)批量修改電腦Windows注冊(cè)表
Windows 注冊(cè)表是系統(tǒng)的中央配置數(shù)據(jù)庫,幾乎所有系統(tǒng)行為都可以通過注冊(cè)表控制,下面我們就來看看如何使用Python 的 winreg 和 wmi 模塊實(shí)現(xiàn)注冊(cè)表的批量讀寫,備份恢復(fù)和遠(yuǎn)程操作吧2026-05-05
Python實(shí)現(xiàn)讀寫INI配置文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀寫INI配置文件的方法,結(jié)合實(shí)例形式分析了Python針對(duì)ini配置文件的讀寫操作類定義及使用方法,需要的朋友可以參考下2018-06-06
Python桌面應(yīng)用開發(fā)實(shí)戰(zhàn)之PyQt的安裝使用
這篇文章主要給大家介紹了關(guān)于Python桌面應(yīng)用開發(fā)實(shí)戰(zhàn)之PyQt的安裝使用,PyQt是一個(gè)功能強(qiáng)大的Python庫,用于創(chuàng)建圖形用戶界面(GUI)應(yīng)用程序,需要的朋友可以參考下2023-08-08
PyTorch學(xué)習(xí)筆記之回歸實(shí)戰(zhàn)
這篇文章主要介紹了PyTorch學(xué)習(xí)筆記之回歸實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05

