步骤
- 截屏整个页面
- 获得验证码坐标数据
- 根据坐标数据抠图
- 使用pytesseract模块进行验证
问题:
-
利用save_screenshot和PIL模块的crop截取验证码区域时,截取不到正确的二维码图片。
**原因:**坐标定位不准确,电脑默认缩放的值为125%。将其改为100%即可正确定位;或者将对应的左上角坐标x、y,图片宽高width、height分别乘以对应的比例1.25,同样可以准确截取图片。 -
图片验证码识别方案:
- 使用pytesseract库:该方法适合各种变形较少的验证码,对于扭曲的字母和数字识别率大大降低。
- 调用showapi 提供的 图片验证码识别
- 自己训练机器学习模型实现验证码识别。
import pickle
import string
import time
from lib.ShowapiRequest import ShowapiRequest
from PIL import Image
import os
import random
import base64
def get_code(driver, id):
# 获取验证码图片
t = time.time()
path = os.path.dirname(os.path.dirname(__file__