背景
最近在研究驗證碼圖片識別元咙,主要是字母+數(shù)字類型的驗證碼圖片,找到了很多方法巫员,但是大多都需要自己去通過深度學(xué)習(xí)自己訓(xùn)練庶香,而且深度學(xué)習(xí)代碼又看不懂。運氣好简识,找到一個完整的深度學(xué)習(xí)代碼能夠去自己訓(xùn)練驗證碼圖片識別赶掖,不需要看懂代碼,直接拿來用财异,但是當(dāng)遇到要識別驗證碼時倘零,又需要時間去訓(xùn)練,訓(xùn)練出來識別率又不高戳寸。機緣巧合下呈驶,google到了一個驗證碼識別神器,而且是無限次數(shù)識別的疫鹊。網(wǎng)址是:www.51learn.vip
這個網(wǎng)站支持的驗證碼類型也挺多的袖瞻。
另外,百度到【無限打碼】
證明這個網(wǎng)站做得也不水拆吆。
上代碼聋迎,直接識別驗證碼
嘗試識別驗證碼圖片:
import json
import requests
# 待識別的驗證碼圖片,轉(zhuǎn)化為Base64圖片
img = 'iVBORw0KGgoAAAANSUhEUgAAAGQAAAAoBAMAAAD6VkJwAAAAKlBMVEX///9lZf7r6/6ysv6env6Li/54eP7Fxf7Y2P67u/6Ghv58fP6srP6oqP63SmftAAACl0lEQVQ4jd1Uy3KbMBS9FtjSMsIgmLYLOQ97C24eXUIzIVtogtulMY7bJTiZNEtIM2m2/bT+Ua/AyTgzHtvddNEzY4Mu5+g+JYD/H+xoevd3ChJwzn0SistyW0nfLAfH9mN2OOrWO9ztbpTEOfLemPhWuAA05vzTBoXehcE9e2uQE8kcoOmXp+/xx/WSjkFSnr4zOnwCGXhDNNGZXCvpjTUrFPOU744g1B3YS87hYLJWUvlUYCB7Q6hkUpS6SNJvkKyVeC4EonmT0ykZ5UDispevolJrXj/jEiDA3/7Mpqahq5C0iR6tkrQFz5AJaeMJwlNZ/HarevsMa7cCLX8Q83NJLKAnKWqnWO4qD5sQcbUqbaQ9pCY1IeCq7aN5O6rKZPFtZf4enJZAvPc28GuJ6wOx2y3kdJ3kinFxLltnBrNUMYbQ948L2VCfpc/YO5uqqbI154ZbabFDVVgxL7Vxr3IL5RDCl1x21N++OA1xBqnRjoAdZ1WEHQfmdPx+1LsZd3ykMJs+V4wrzDDtwof2uOfXMbgdQ22gcSGLe4cpl/2oVjaSFm/QhZZbWR/QFuS9sQqTXOcQ4KAUX58eTByEpUxivoQMOykrtaOH6VEbS0BiLnKYNSHVCtJlpnx8pVuDWoJZj4E4enTFrDkanfV0Bcwa5ynTJrYm+DTOscLp4lNz5G9FElimGroXia8q36U21ngQZ8Csn+JV18hhciEDa8miR5UE6uhXtTdVMb5iaEm5tMAW5xhdK3CLYWPYeHsxQ7OJlxe/ylt+sYm8wCWG8hXCAOBHLDZcPgtULsML2EzxRJIbsZmPqOeWOngiP0vwtgvNMw8jbCeeSHESy60kLEzsusDkqD7A2yEWze5sOyc1tdya+k/wB57of1BlAlUxAAAAAElFTkSuQmCC'
# 接口 全局headers
headers = {
'Content-Type': 'application/json'
}
# 登錄驗證碼識別接口
resp = requests.post('http://51learn.vip:3001/pub/login', data=json.dumps({'username': '賬號', 'pwd': '密碼'}), headers=headers)
# 登錄接口返回
print('#登錄接口返回')
print(resp.json())
token = resp.json()['data']['authentication']
print('#token')
print(token)
# 頭部加入token
headers['Authorization'] = 'Bearer %s' % token
# 開始驗證碼圖片識別
resp = requests.post('http://51learn.vip:3001/yzm/letter_number/reg', data=json.dumps({'captchaData': img}), headers=headers)
print('#驗證碼識別接口返回')
print(resp.json())
# 識別結(jié)果
print('#識別結(jié)果')
print(resp.json()['data'])
運行結(jié)果:
#登錄接口返回
{'state': 0, 'type': 'SUCCESS', 'code': 200, 'message': '登錄成功', 'data': {'authentication': '855c927a94b14f833dea27bed59b3759'}}
#token
855c927a94b14f833dea27bed59b3759
#驗證碼識別接口返回
{'state': 0, 'type': 'SUCCESS', 'code': 200, 'message': '識別成功', 'data': 'qef3q'}
#識別結(jié)果
qef3q