# 解析图文验证码的库
首先直接使用 PiP 安装:
在cmd中输入:pip3 install tesserocr pillow 【windows上不支持直接这样安装(linux上可以)】
windows可以使用 whl文件 进行安装
下载网址:https://github.com/simonflueckiger/tesserocr-windows_build/releases
文件要放到python的pip命令所在目录
查看Python对应的whl文件版本
cmd中输入:python
>>>import pip
>>>import pip._internal
>>>print(pip._internal.pep425tags.get_supported())
pip3 install tesserocr-2.3.1-cp36-cp36m-win_amd64.whl
安装之后测试一下 能否导入包 我是可以用的 import tesserocr
——————————————————————————————————————————
下载 tesseract-ocr-w64-setup-v4.0.0.20181030.exe 带dev的是开发版本 这个是稳定版本
安装之后我没配环境变量 语言包太大了 我没装(有需要的可以自己装一下)
————————
下面这个网址可以查找图文验证码示例
http://my.cnki.net/elibregister/CheckCode.aspx
之后在代码中运行:
import tesserocr
from PIL import Image
image = Image.open('code.jpg')
image = image.convert('L') # 将图片转化为灰度头像
threshold = 127 # 设定阈值 自定义灰度界限,大于这个值为黑色,小于这个值为白色
table = []
for i in range(256): # RGB元组的256个元素
if i < threshold:
table.append(0)
else:
table.append(1)
image = image.point(table, '1')
result = tesserocr.image_to_text(image)
print(result)
运行结果报错:
failed to init API, possibly an invalid tessdata ........
应该是路径不对 我上网搜了一下, 以下是一位大神给的解决方法:
Traceback 告诉我们:tessdata 路径无效,无法初始化 API。
错误的原因是:stand-alone packages 虽然包含了 Windows 下所需的所有库,但并是不包含语言数据文件(language data files)。并且数据文件需要被统一放置在 tessdata\
文件夹中,并置于 C:\Python36
内。
获得数据文件有如下两种方式:
- 方法一:按照下一节的方法安装 "tesseract-ocr-w64-setup-v4.0.0-beta.1.20180608.exe"(因为要与 tesserocr-2.2.2 匹配)。然后,将
C:\Program Files (x86)\Tesseract-OCR\
下的tessdata\
文件夹复制到C:\Python36\
下即可 。 - 方法二:无需安装 tesseract ,只需克隆 tesseract 仓库的主分支,然后将其中的
tessdata\
文件夹复制到C:\Python36\
中。接下来,通过 tessdata_fast 仓库下载eng.traineddata
语言文件,并放置于C:\Python36\tessdata\
内即可
——————————
之后在运行就可以用了 2018.12.14 测试有效
windows太恶心了 存钱换苹果吧