web端登录需要验证码-python获取验证码数值

这两天在写脚本,首先登录之前带有验证码的(有时效性),postman工具只能口头计算出来才能进行请求。fiddler是直接可以获取到,考虑到请求方便性,就需要实时获取动态验证码的接口并得出验证码的值。这就有了ocr这个模块的引入。
安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ddddocr
response响应内容如:
web端登录需要验证码-python获取验证码数值_第1张图片
如若用Python脚本获取验证码的值,整体如下:
import ddddocr
url = ‘待明天补充’
code= self.session.post(url=url,headers=header,data=json.dumps({})).json()
image_url = codevification[‘data’][‘image’]
urllib.request.urlretrieve(image_url, ‘code.png’)
ocr = ddddocr.DdddOcr()
res = ‘’
with open(‘codevification.png’, ‘rb’) as f: #打开图片
img_bytes = f.read() #读取
res = ocr.classification(img_bytes) #识别
print("返回code: " + res)
return {‘res’:res}
如此,res即是我想要的验证码的数值。再写下一个接口登录接口,传入用户名,密码。验证码数值,就能正常发送返回数据了。
粗略记下,明天再补充
好吧,我认怂了。由于我的是计算型验证码,OCR识别还是不那么精确的。pytesseract识别度高,但我没那个精力去折腾。还有一种方法是针对固定的字体,0-9的图片,反推出对应的多维矩阵元素,再识别计算。而且,投了巧,计算的结果也不就是那几位数么,干脆直接遍历一遍,不对就继续对就break或return不就行了,于是,大胆了。。
web端登录需要验证码-python获取验证码数值_第2张图片
web端登录需要验证码-python获取验证码数值_第3张图片
呵呵,我还是达到了目的。不纠结,直接测下一个接口,come on!

你可能感兴趣的:(python,开发语言)