python爬虫图形验证码识别

爬虫时遇到图形验证码的情况时,就需要识别验证码了,以下是识别简单的图形验证码的方法。threshold可以更改以提高准确率。

from PIL import Image
import tesserocr
import os

RIGHT_NUMBER = 0

images_list = os.listdir('./' + '图形验证码')     # 从知网上下载验证码放在本地文件夹,取名‘图形验证码’。获取文件夹中图片列表
for index, image in enumerate(images_list):
    img = Image.open('图形验证码/' + image)       # 图形验证码下的图片文件
    img = img.convert('L')                       # 转灰度
    threshold = 129                              # 阈值,可以更换,以提高准确率
    table = []
    for i in range(256):
        if i < threshold:
            table.append(0)
        else:
            table.append(1)
    img = img.point(table, '1')             # 二值化处理
    result = tesserocr.image_to_text(img)   # xxxx\n  有个换行符
    if result[:-1] == image[:-4]:           # result[:-1] !'\n'是一个字符
        print(index, image[:-4], '验证结果:', result[:-1], 'T')
        RIGHT_NUMBER += 1
    else:
        print(index, image[:-4], '验证结果:', result[:-1], 'F')
print('准确率:{:.2%}'.format((RIGHT_NUMBER/len(images_list))))

总体来说,准确率不高。有哪位大神路过有高招的话,告知一声哈~

——————————————————————————————————————————————
微信关注号:python爬虫机器学习深度学习
在这里插入图片描述

你可能感兴趣的:(python)