Selenium 结合 ddddocr库 自动化验证码
带带弟弟OCR 库
最近(2023年11月)发现一个 Python 的验证码识别库,名为 带带弟弟OCR
,库代码名为 ddddocr
。
点击这里打开 ddddocr 在 PYPI 的主页
这个库结合Seleium,可以做 网页自动化通过验证码校验。
安装
执行如下命令即可安装 ddddocr
库
当前由于这个库依赖 pillow
,但是这个库没有指定依赖的pillow版本, 目前和最新的 pillow 10 版本不兼容,
需要运行下面的命令,指定安装 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()