跳转至

Selenium 结合 ddddocr库 自动化验证码

点击这里,边看视频讲解,边学习以下内容

带带弟弟OCR 库

最近(2023年11月)发现一个 Python 的验证码识别库,名为 带带弟弟OCR,库代码名为 ddddocr

点击这里打开 ddddocr 在 PYPI 的主页

这个库结合Seleium,可以做 网页自动化通过验证码校验。

安装

执行如下命令即可安装 ddddocr

pip3 install ddddocr


当前由于这个库依赖 pillow ,但是这个库没有指定依赖的pillow版本, 目前和最新的 pillow 10 版本不兼容,

需要运行下面的命令,指定安装 pillow 9.5

pip3 install pillow==9.5

使用

大家可以参考PYPI的文档说明使用该库

下面是一段示例代码

# 安装的 pillow 版本 要 9.5, 不能是 10, 否则 会有错误 module 'PIL.Image' has no attribute 'ANTIALIAS'

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import ddddocr

ocr = ddddocr.DdddOcr()

options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging']) # for ignore warning and error
driver = webdriver.Chrome(options=options)
driver.implicitly_wait(4)
driver.get('http://127.0.0.1/1.html')

time.sleep(2) # 这里出现captcha时间有点长,等待2秒

while True:
    # 获取元素展示内容为图片数据
    pngData = driver.find_element(By.ID,'captcha').screenshot_as_png

    # with open('d:/tmp1.png', 'wb') as f:
    #     f.write(pngData)

    res = ocr.classification(pngData)
    print('验证码是', res)

    ch = input('')
    if ch != '':
        break

    driver.refresh()