关于图片验证码的识别
在平时的接口自动化的工作中,不可避免的会遇到关于图片验证码的识别的问题,一般来说我们有3种方法:
1、让开发提供一个万能验证码
2、让开发在测试环境去掉验证码验证
3、使用第三方接口进行验证码识别
1和2本质上是避开验证码的干扰,而2一般不建议采用,这里主要对3进行讲解。

一、第三方接口
这里我们通过图鉴图片识别平台:http://www.ttshitu.com/,充值一元可以用很多次,非常适合平时自己学习和使用。
查看接口文档:http://www.ttshitu.com/docs/index.html#pageTitle,只使用必填参数:username、password、image即可。
其中image参数说明如下,我们使用base64图片:

二、抓取图片验证码接口
通过对验证码图片接口进行抓包以及base64编码解码得到验证码图片code.jpg
三、Code
with open(file=r'api\manage\code.jpg', mode='rb') as f:
base64_data = base64.b64encode(f.read())
b64 = base64_data.decode()
def get_image_code():
url = 'http://api.ttshitu.com/predict'
data = {
'username': 'xxx',# 图鉴用户名
'password': 'xxx',# 图鉴密码
'image': b64
}
res = requests.post(url=url, json=data)
result = json.loads(res.text)
print(result)
if result['message'] == 'success':
image_code = result['data']['result']
print(f'验证码是{image_code}')
return image_code
else:
print('解析验证码失败')
get_image_code()
>>>
{'success': True, 'code': '0', 'message': 'success', 'data': {'result': 'xnxs', 'id': 'C_RtZoaYSWyd_QUxrfTFhg'}}
验证码是xnxs
ps:
res.json():返回json格式的响应内容
res.text:返回Unicode str格式的响应内容
res.content:返回二进制字节bytes格式的响应内容
总结:获取json用res.json(),获取文本用res.text, 获取图片或文件用res.content

浙公网安备 33010602011771号