Python 光学字符识别 Tesserocr 安装和坑

Tesserocr 是 Python 的一个 OCR 识别库 ,但其实是对 tesseract 做的一 层 Python API 封装,所以它的核心是 tesseract。Tesseract是一个开源的OCR(Optical Character Recognition,光学字符识别)引擎,可以识别多种格式的图像文件并将其转换成文本。

在爬虫过程中,难免会遇到各种各样的验证码,而大多数验证码还是图形验证码,这时候我们可以直接用 OCR 来识别。

下载安装Tessercat

在 Windows 下,首先需要下载 tesseract,它为 tesserocr 提供了支持。

tesseract 下载地址:http://digi.bib.uni-mannheim.de/tesseract

进入下载页面,可以看到有各种 .exe 文件的下载列表,这里可以选择下载 3.05版本。

单击下载的到的tesseract-ocr-setup-3.05.02-20180621.exe进行安装,在安装过程中可以在Additional language data (download) 选项来安装 OCR 识别支持的语言包,这里我选择了几个中文语言包,方便与以后中文识别的使用。

安装Tesserocr

打开CMD

pip install tesserocr pillow

各种坑

Tesseract语言包下载缓慢

由于资源在国外,下载过程过于缓慢,实在等不了且不进行中文识别的话可以取消语言包的下载。(或者使用特殊犯法加速)

配置环境变量

我的安装目录为D:\Program\Tesseract-OCR,将D:\Program\Tesseract-OCR添加到环境变量的系统变量中的path中,并且新建TESSDATA_PREFIX变量,值为tessdata的路径,我的是D:\Program\Tesseract-OCR\tessdata

配置完成后可以在CMD中用测试图片(image.png)tesseract image.png result -l eng进行测试。然后在桌面上就出现了一个result的txt文档,打开后发现就是我们想要的结果,证明tesseract安装成功。

Tesserocr安装出错

我的方法是使用Anaconda安装

conda install -c simonflueckiger tesserocr pillow

还可以下载whl使用pip install whl文件名

下载地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases

(我下载了很多次,下载速度过于缓慢,建议使用特殊方法加速)

Failed to init API, possibly an invalid tessdata path

在Pycharm中调用测试中会报错Failed to init API, possibly an invalid tessdata path,这个问题困扰了我到半夜,网上的方法是将Tesseract安装目录下的tessdata目录复制到程序报错的目录下。(如果不存在的话可以根据报错新建目录)。

但是,我试过了很多次,依然不行后来发现原来我安装版本不支持,卸载安装的5.0版本,直接下载安装3.05版本Tessercat,更换版本后在移动tessdata就可以使用了!

一定要看

后来在查阅资料的时候发现Python对Tessercat有封装!

pip install pytesseract

一行代码就可以解决在上面安装tesserocr的一大串问题了!

参考

Python3 网络爬虫开发实战

文章目录