【耐家军出品必属精品】农业银行行gif验证码流程分享纯干货掌握可解决市面上所有gif验证码问题纯免费
评论
收藏

【耐家军出品必属精品】农业银行行gif验证码流程分享纯干货掌握可解决市面上所有gif验证码问题纯免费

经验分享
【耐家军】DC
2025-06-26 19:30·浏览量:837
【耐家军】DC
影刀专家
影刀认证工程师
发布于 2025-06-26 18:27更新于 2025-06-26 19:30837浏览

效果展示

思路

1、利用抓包获取当前验证码的base64值转gif图

2、利用pillow库解决获取最后一帧转图片

3、利用ddddocr库获取验证码中的值

代码如下

需要安装的包pillow ddddocr


# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块

import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
from PIL import Image, ImageSequence
import base64
from io import BytesIO
from ddddocr import DdddOcr

def gifzhyc(gif_base64):
    # 解码 Base64 数据
    gif_data = base64.b64decode(gif_base64)

    # 创建内存中的字节流
    gif_stream = BytesIO(gif_data)

    # 打开 GIF 文件
    with Image.open(gif_stream) as img:
        # 获取最后一帧
        last_frame = None
        for frame in ImageSequence.Iterator(img):
            last_frame = frame.copy()
        
        # 将最后一帧转换为字节流 (PNG格式)
        frame_bytes = BytesIO()
        last_frame.save(frame_bytes, format='PNG')
        frame_data = frame_bytes.getvalue()

    # 使用 dddocr 进行识别
    ocr = DdddOcr()
    result = ocr.classification(frame_data)
    #识别结果
    return result
def main(args):
    pass

流程思路

1、判断是否验证成功,成功则退出循环,否则继续验证

关键点

1、获取网页中的r值和监听中的r值要一致才是同一张图片,验证才准确

2、因网络延迟图片加载不出来base64为空继续验证

大致流程

以上思路来源耐家军交流群大佬们的讨论结果

收藏9
全部评论1
最新
发布评论
评论