本文介绍: 这些资料,对于【软件测试】的朋友来说应该最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

Requests图片验证码处理

web端的登录接口经常会有图片验证码输入,而且每次登录图片验证码都是随机的;当通过request接口登录的时候要对图片验证码进行识别出图片中的字段然后再登录接口使用

通过request对图片验证码的识别方法(带有噪点的图片)

一、通过本地安装OcrServer工具识别图片验证码

百度下载ocrserver工具

下图解压双击OcrServer.exe然后电脑的右下角会显示服务的IP和端口

二、通过python编写脚本,并配合OcrServer工具,识别出图片验证码的值

前置条件导入需要插件

import base64
import request

1、发送图片验证码接口返回图片的响应保存指定文件夹

# 获取验证码图片,并保存下来为123.png
response = requests.get(‘获取验证码图片的URL地址‘)
img = response.content
with open(‘../sample/123.png‘,’wb‘) as f:
    f.write(img)

2、打开读取图片后,通过base64对图片进行编码

# 读取图片后,通过base64对图片进行编码
png = open('123.png','rb')
res = png.read()
s = base64.b64encode(res)
png.close()
# print(s.decode('ascii'))

3、在本地打开OcrServer.exe插件后,发送编码后的图片到指定url地址返回值json格式

# 在本地打开OcrServer.exe插件后,发送编码后的图片到指定url地址返回值json格式:{“code“:”验证码图片的值”}
response = requests.post(url=”http://127.0.0.1:12349″,data=s)
code_num = response.json()
print(code_num[‘code‘])

4、查看识别的验证码图片的值

获取到的验证码图片如下图

 代码执行输出结果下图

 全部代码下图示例:可写成一个封装类,用来调用

import base64
import requests

# 获取验证码图片,并保存下来为123.png
response = requests.get(‘获取图片验证码的url地址‘)
img = response.content
with open(‘../sample/123.png‘,’wb‘) as f:
    f.write(img)

# 读取图片后,通过base64对图片进行编码
png = open(‘123.png‘,’rb’)
res = png.read()
s = base64.b64encode(res)
png.close()
# print(s.decode(‘ascii‘))

# 在本地打开OcrServer.exe插件后,发送编码后的图片到指定的url地址,返回值json格式{“code”:”验证码图片的值”}
response = requests.post(url=”http://127.0.0.1:12349″,data=s)
code_num = response.json()
print(code_num[‘code’])

通过编写python代码导入第三方库(),识别图片验证码(没有噪点的图片)

 没有噪点的图片;如下图

数字:下面代码的图片名称以为666.png代替

中文:下面代码的图片名称以为999.png代替

 1、首先下载 Pillow库和 pytesseract库,用来识别图片验证码

pip install Pillow
pip install pytesseract

2、通过导入第三方库,然后编写如下代码识别图片验证码;

示例代码:下面以纯数字的图片验证码举例

from PIL import Image
import pytesseract

# pytesseract和PIL只能对图片验证码没有噪点的识别成功
path = ‘666.png
captcha = Image.open(path)
result = pytesseract.image_to_string(captcha,lang=”chi_sim“)
print(result)

执行结果:识别成功

 示例代码:下面以纯中文的图片验证码举例

from PIL import Image
import pytesseract

# pytesseract和PIL只能对图片验证码没有噪点的识别成功
path = ‘999.png’
captcha = Image.open(path)
result = pytesseract.image_to_string(captcha,lang=”chi_sim“)
print(result)

执行结果:识别成功

获取验证码图片的URL地址

最后感谢每一个认真阅读文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

原文地址:https://blog.csdn.net/2301_78276982/article/details/134734787

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_22758.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注