验证码的识别----tesserocr

tesserocr安装问题

pip install tesserocr安装往往不正确,一种采用Ancona安装,另一种采用以下的方法安装。

Tesseract的安装及配置

在Python爬虫过程中,难免遇到各种各样的验证码问题,最简单的就是​这种验证码了,那么在遇到验证码的时候该怎么办呢?我们就需要OCR技术了,OCR-即Optical Character Recognition光学字符识别,是指通过扫描字符,然后将其形状翻译成电子文本的过程。而tesserocr是Python的一个OCR识别库,所以在安装tesserocr之前,我们需要安装tesseract这个东西

下载地址:https://digi.bib.uni-mannheim.de/tesseract/可以选择下载不带dev的稳定版本,我下载的是3.05.01版本的,不过这个版本的可能比较早了,识别能力不是很厉害,读者可以选择下载最新版本的3.05.02,识别能力应该会好很多。

下载完就是一路双击,在最后的Additional Language data(download)选上这个选项,是OCR支持各种语言的包,然后继续安装,直到安装成功。

我的安装路径为:G:\Program Files (x86)\Tesseract-OCR

安装完成后就得需要配置环境变量,打开环境变量设置,在path中加入如下

​的设置,这样tesseract就安装成功并配置完成了、

tesserocr库的安装

刚开始我直接在cmd下输入 pip install tesserocr 很不幸报错了,报错类似于如下。。。因为之前我的报错,没有截图。所以。。

就是类似于这种的截图,这该怎么办,难道要去下载visual C++吗?我们有更好的解决方法,下载对应的.whl文件

下载地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases一定要下载对应版本的

我的是3.5.1,所以我下载的是这个版本的。读者可以自行选择。

我的tesserocr-2.2.2-cp36-cp36m-win_amd64.whl文件下载在G盘根目录下,然后在cmd里输入 pip install G:\tesserocr-2.2.2-cp36-cp36m-win_amd64.whl 开始安装whl文件,发现报错了。提示不能安装whl文件。。原来是没有安装wheel。

然后我就去安装了wheel 直接 pip install wheel即可。

如果报错,不支持该平台需要考虑python支持系统是32bit、还是64bit,不取决于主机,而是安装的Python版本,查看方式请参考:错误:pyHook-1.5.1-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform

安装成功 在输入pip install G:\tesserocr-2.2.2-cp36-cp36m-win_amd64.whl 发现开始安装了。

如果报错了还得有一步操作。

将Tesseract-OCR下的tessdata文件复制到你的Python安装路径F:\SoftWare\python\

运行下代码

import tesserocr
import requests
from PIL import Image

url = "http://my.cnki.net/elibregister/CheckCode.aspx"
r = requests.get(url=url)

with open("2.png","wb+") as fp:
    fp.write(r.content)
image = Image.open("2.png")
image.show()
result = tesserocr.image_to_text(image)
print(result)

运行结果: 

成功运行不过不怎么正确。。。。

总结:实在不行依托第三方的打码平台,在平台上有开发教程,平台有:云打码、斐斐打码等等

 

 

你可能感兴趣的:(爬虫)