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

这两天在写脚本,首先登录之前带有验证码的(有时效性),postman工具只能口头计算出来才能进行请求。fiddler是直接可以获取到,考虑到请求方便性,就需要实时获取动态验证码的接口并得出验证码的值。这就有了ocr这个模块的引入。
安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ddddocr
response响应内容如:
在这里插入图片描述
如若用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不就行了,于是,大胆了。。
在这里插入图片描述
在这里插入图片描述
呵呵,我还是达到了目的。不纠结,直接测下一个接口,come on!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值