Python 光学字符识别 Tesserocr 安装和坑
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 网络爬虫开发实战