本文的创作缘由在于此前撰写了一个用于研究自动打卡的脚本
。众多朋友在使用过程中常常会遇到验证码的问题,鉴于此,笔者对存有数字化验证码内容的情况进行了尝试性探索。
原始文章见:用python实现自动签到脚本
1. 应用场景
如图,我们登录内容包含三部分信息
2. 整体思路
安装python的selenium包,文本框填写,通过xpath定位到账户、密码位置,填写自己的基础信息。对于验证码,我们可以看看该元素的特征,如图:
可以看到,每次二维码加载的时候,是调用了某个网址的链接,取到的是一张图片。因此,我在处理过程中的思路是,将改地址的图片拿到,通过OCR进行解析识别,得到的结果输入到验证码框中,即可实现。
3. 验证码识别思路
3.1 调用普通python包实现
参考链接:传送门,我没有采用该方式,理由是,安装环境真特么的麻烦。
3.2 使用大模型进行OCR识别
本文借助百度的千帆大模型平台,普通用户有1000次/月的额度,对于小型测试娱乐完全够用。地址:https://console.bce.baidu.com/,用户自行注册,在此声明,个人测试过,非软广!非软广!非软广!
首先自行领取资源,如图:
自行创建应用,如图:
在线API调试,如图:
如果可以得到相应结果,那么就可以download代码使用啦。
拿到验证码的代码如下:
response = requests.request("POST", url, headers=headers, data=payload)
verification_code = json.loads(response.text).get("words_result")[0].get("words")
4. 总结
验证码识别有多种方式,离线方式可以采用python包版本进行配置,对于在线验证的方式,尤其是图片式验证码,上述方式可以完美解决,效果还不错。