vlambda博客
学习文章列表

强大的图形验证码识别工具ddddocr

自动化测试再也不用怕图形验证码了-带带弟弟OCR

我们在做UI自动化测试时,如果是线上系统一般登录界面都有图形验证码,selenium库对这块没有好的处理方法和工具,今天给大家介绍下免费开源的超级好用的图形识别工具ddddocr。

使用pip安装ddddocr

python环境要求<3.9。

pip install ddddocr

使用

  • 字母数字验证码 google搜索字母数字验证码
强大的图形验证码识别工具ddddocr

python代码如下:

ocr = ddddocr.DdddOcr(old=True)
with open("z1.jpg"'rb'as f:
    image = f.read()
res = ocr.classification(image)
print(res)

识别结果如下:

3n3d
8342
  • 点选类验证码 网易点选类验证码
强大的图形验证码识别工具ddddocr

python代码如下:

det = ddddocr.DdddOcr(det=True)
    with open("eb.jpg"'rb'as f:
        image = f.read()
    poses = det.detection(image)
    im = cv2.imread("eb.jpg")
    for box in poses:
        x1, y1, x2, y2 = box
        im = cv2.rectangle(im, (x1, y1), (x2, y2), color=(00255), thickness=2)
    cv2.imwrite("result.jpg", im)

识别结果如下:

强大的图形验证码识别工具ddddocr
  • 滑块验证码

如豆瓣的滑块验证的识别:

强大的图形验证码识别工具ddddocr

python代码如下:

import ddddocr
det = ddddocr.DdddOcr(det=False, ocr=False)
with open('hycdn.png''rb'as f:
        target_bytes = f.read()
with open('background.jpg''rb'as f:
    background_bytes = f.read()
res = det.slide_match(target_bytes, background_bytes, simple_target=True)
print(res)

识别结果如下:

{'target_y': 0, 'target': [486126622262]}

target属性的前两个值正好和豆瓣验证滑块url中提交的ans。

如果对你有帮助请关注点赞收藏加转发