1.验证码类型

知网注册页的验证码类型属于常见四位英文和数字组成的验证码。可以在超级鹰的 验证码类型于价格表 页面参考。

2.Python识别库 - tesserocr、pytesseract

这两个第三方库识别精度均较差, 字体略微差异可能就不是正常结果。所以选择超级鹰识别,识别前可做灰度、二值化处理(我这里做了注释选择不用,感觉平台打码精度挺高的),代码如下:

'''
想要学习Python?Python学习交流群:984632579满足你的需求,资料都已经上传群文件,可以自行下载!
'''
def handle_code(image):
    """
    处理验证码
    :param image: Image对象
    :return:
    """
    # 灰度处理
    image = image.convert("L")
    # 阈值120(可灵活配置)
    threshold = 120
    table = []
    for i in range(256):    #
        if i < threshold:
            table.append(0)
        else:
            table.append(1)
    # 二值化处理
    image = image.point(table, '1')
    # 使用tesserocr获取处理结果
    result_1 = tesserocr.image_to_text(image).strip()
    # 使用pytesseract获取处理结果
    result_2 = pytesseract.image_to_string(image).strip()   
    # print('验证码为:', result)
    # 两者识别结果相同再继续程序,否则循环识别。但是代价很大,所以弃用。
    return result_1, result_2

 


本文转载:CSDN博客