南宁软件优化网站,安全联盟可信任网站认证 网站,推荐一些外国做产品网站,小程序建站工具Requests对图片验证码的处理
在web端的登录接口经常会有图片验证码的输入#xff0c;而且每次登录时图片验证码都是随机的#xff1b;当通过request做接口登录的时候要对图片验证码进行识别出图片中的字段#xff0c;然后再登录接口中使用#xff1b;
通过request对图片验…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(urlhttp://127.0.0.1:12349,datas) 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(urlhttp://127.0.0.1:12349,datas) 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,langchi_sim) print(result) 执行结果识别成功 示例代码下面以纯中文的图片验证码举例 from PIL import Image import pytesseract # pytesseract和PIL只能对图片验证码没有噪点的识别成功 path 999.png captcha Image.open(path) result pytesseract.image_to_string(captcha,langchi_sim) print(result) 执行结果识别成功 获取验证码图片的URL地址
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你