查看: 58|回复: 0

记apifox-验证码解析

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-5-10
发表于 2025-8-8 16:16:00 | 显示全部楼层 |阅读模式

通常在获取验证码时回需要一些动态的时间戳,记解析动态码的脚本

如接口/sys/randomImage/{{timestamp}}

主要2个动作,一个前置,一个后置

 

pm.globals.set('timestamp', new Date().getTime())
console.log("设置全局时间戳变量"+pm.globals.get("timestamp"));
前置
//通过.json()函数,获取到响应体中返回的json数据
let res = pm.response.json()

//定义一个模板,这个模板存的是
const template = `<html>
<img src="{{imgTemplate}}" />
</html>`;

//构建img标签能识别的base64 url,注:如果接口返回的base64 url没有【data:image/png;base64,】则需要拼接进去,否则出不来图片。
//因接口返回的是一个数组,这里打印打一张图片
// let img= "data:image/png;base64,"+ res.result;//res.result是图片地址
let img = res.result.replace(/^data:image\/jpg;base64,/, '');

const result = await pm.executeAsync('/Users/tongzuqi/PycharmProjects/py/ocr/test.py', [img] ,{ command: 'python3' } )
pm.globals.set('captcha', result)
console.log("设置全局时间戳变量:"+pm.globals.get("captcha"));
后置
import sys
import base64
import ddddocr
"""
接收一个参数 = base64
data:image/jpg;base64, 后的内容
返回一个识别后的
"""


# show_ad置为False关闭广告
ocr = ddddocr.DdddOcr(show_ad=False)
# 将base64转bytes
image = base64.b64decode(sys.argv[1])
res = ocr.classification(image)
print(res)
test.py

控制台如下

image

 

 


来源:https://www.cnblogs.com/mytzq/p/19028687
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部