Python 图形验证码库 tesserocr | 臭大佬

用途

对于验证码,我们可以使用OCR技术来将其转化为电子文本,然后爬虫将识别结果提交给服务器,便可以达到自动识别验证码的过程。

概念

OCR

OCR,全称叫 Optical Character Recognition,中文翻译叫光学字符识别,是指通过扫描字符,通过其形状将其翻译成电子文本的过程;

tesseract

tesseract是google开源的OCR

安装

WIN10

tesserocr需要安装tessoract依赖库,所以安装tesserocr前需要安装tessoract。
tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/,(可能需要爬墙哦)

然后安装到这一步注意要勾选这一项来安装OCR识别支持的语言包,这样OCR就可以识别多国语言,然后就可以一直点击下一步完成安装。

如何验证tesseract是否安装成功?直接cmd下输入tesseract即可;

如果提示’tesseract’ 不是内部或外部命令,则是因为没有配置环境变量,手动把tesseract根目录配置到path参数下即可

重启cmd控制台,再次输入tesseract;

安装 tesserocr

windows不能用pip install tesserocr所以我这里是安装.whl文件,下载地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases

把下载好的xxx.whl文件放在python安装目录下的\Lib\site-packages文件夹里面,进入该目录下,然后在这里打开cmd,输入命令pip install xxx.whl

pip install tesserocr-2.4.0-cp36-cp36m-win_amd64.whl

在运行过程中,我们还需要更新pip

pip install --upgrade pip

运行代码
import tesserocr
from PIL import Image
# 新建Image对象
image = Image.open("./code_img/veriCode (1).do")
# 进行置灰处理
image = image.convert('L')
# 这个是二值化阈值
threshold = 150
table = []
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
# 通过表格转换成二进制图片,1的作用是白色,不然就全部黑色了
image = image.point(table, "1")
#image.show()
result = tesserocr.image_to_text(image)
print(result)

运行时有一个报错信息

RuntimeError: Failed to init API, possibly an invalid tessdata path: D:\Program Files\Anaconda3\envs\tensorflow\/tessdata/

只要把刚才安装的tesseract下面的tessdata文件夹复制到python的安装路径里(与lib文件夹同级),也就是报错报的地址处。

再次执行:

可以获取得到验证码内容了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Galloping-Vijay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值