概述
字符验证码是网站反爬机制中十分常见的一种 通过让用户登陆操作在登陆操作时输入图片中含有的字符来甄别正常用户和爬虫。
识别操作
- 人工识别(适用于访问量较小的情景)
- 第三方自动操作
使用第三方自动识别
- 云打码等付费识别
- 其他的开源模块
看你个人咯,这些付费的往往会用起来更加便捷
这里我使用pillow和pytesseract来实现验证码的识别。
算逑!配置cv2配置了半天都每配置好,我决定使用 ddddocr
ddddocr
DdddOcr接受的参数:
-
参数 描述 use_gpu 默认为False,是否使用GPU进行推理 device_id 默认为0,int cuda设备号,仅支持单张显卡
classification只接受一个参数:
-
参数 描述 img 默认为0,图片的bytes格式
我们试着来识别一下验证码吧!
import ddddocr
# 实例化对象
ocr = ddddocr.DdddOcr()
# 读取图像的二进制文件
with open('01.png', 'rb') as f:
img_bytes = f.read()
# 识别验证码
res = ocr.classification(img_bytes)
# 输出验证码
print(res)
2pne
2021-09-05 20:37:50.1681075 [W:onnxruntime:, execution_frame.cc:721 onnxruntime::ExecutionFrame::VerifyOutputSizes] Expected shape from model of {1,19} does not match actual shape of {1,20} for output output
成功了!