当前位置: 代码迷 >> 综合 >> 2020-1-19 爬网页21-验证码识别入门(简单的输入式验证码-Tesseract-OCR)
  详细解决方案

2020-1-19 爬网页21-验证码识别入门(简单的输入式验证码-Tesseract-OCR)

热度:0   发布时间:2024-01-26 07:09:09.0

爬网页一定会有验证码出现。
最幸运的情况就是遇到下面图片中这种情况
在这里插入图片描述
这种验证码式最最最最容易被识别的。

网上有介绍用pytesser来实现的,它是谷歌OCR开源项目。
我尝试了半天,不知道为什么就是不行。有兴趣的可以自行研究,界面如下
在这里插入图片描述
需要下载2个文件,自己百度吧,反正多年前的旧帖子很多都是用这种方法。

下面要说的是成功的方法。这种方法也是要利用Tesseract-OCR

我的环境64位Win10+py2.7

step1.安装PIL库
因为涉及图像识别,所以必须安装PIL(Python Imaging Library) 来进行图像处理
建议用下面的方法安装

pip install pillow

关于pillow介绍参见链接

step2.安装Tesseract-OCR
去这里下载https://github.com/UB-Mannheim/tesseract/wiki
我下载的是tesseract-ocr-w64-setup-v5.0.0-alpha.20191030.exe
默认安装就行

step3.配置
3-1.在计算机的环境变量path中追加你刚才安装tesseract-ocr的路径
如果正常,可以显示以下内容

C:\>tesseract -v
tesseract v5.0.0-alpha.20191030leptonica-1.78.0libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0Found AVX2Found AVXFound FMAFound SSEFound libarchive 3.3.2 zlib/1.2.11 liblzma/5.2.3 bz2lib/1.0.6 liblz4/1.7.5

3-2.在环境变量中追加一个环境变量TESSDATA_PREFIX,值就是你的Tesseract-OCR安装目录\tessdata。其实就是eng.traineddata这个文件所在目录

3-3.修改python安装目录Lib\site-packages\pytesseract中的pytesseract.py
这个文件中有下面这一行

tesseract_cmd = 'tesseract'

修改为

tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe'

也就是tesseract.exe的所在目录。
注意:这里请用反斜杠,不然会出错。不信可以自己试一下。

step4.使用
我们来尝试一下下面这个验证码。
在这里插入图片描述
代码

#coding:utf-8
from PIL import Image,ImageEnhance
import pytesseractim=Image.open("yzm.aspx.jfif")
image = im.convert('L')#图像加强,二值化
im2 =ImageEnhance.Contrast(image)#对比度增强
im3 = im2.enhance(2.0)text = pytesseract.image_to_string(im3)
print text

yzm.aspx.jfif是网站上保存验证码图片的文件名称。
运行后结果

PFRD