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