破解验证码--使用tesseract

1. 安装tesseract


  OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。

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

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

 

其中文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本,例如可以选择下载tesseract-ocr-setup-3.05.02.exe。

下载完成后双击,此时会出现如下图所示的页面。

此时可以勾选Additional language data(download)选项来安装OCR识别支持的语言包,这样OCR便可以识别多国语言。当然如果只是识别英文和数字就不用下载了,大家根据自己所需。

然后一路点击Next按钮即可。

接下来,为了在python代码中使用tesseract功能,使用pip安装pytesseract:

pip install pytesseract

2、配置环境变量并验证

  将tesseract的安装目录添加到path环境变量中

D:\Program Files\Tesseract-OCR

 

  dos中输入tesseract如果出现如下信息,则安装成功

  

3、测试验证

  随便找一张验证码图片(图片有点小,到时候可能需要先修改下图片尺寸,否则识别不到)

  3.1 使用命令行方式验证

    先将验证码图片放在D盘,然后输入命令: tesseract rand.jpg result

    

    这里我们调用了tesseract命令,其中第一个参数为图片名称,第二个参数result 为结果保存的目标文件名称。

    会发现D盘多了一个result.txt文件,这里面就是识别后的文本信息了

   

    

    验证成功!

  3.2 python代码验证

     这里需要用到上面安装的pytesseract库

from PIL import Image
import pytesseract
 
text = pytesseract.image_to_string(Image.open(r'D:\rand.jpg'))
print(text)

  我们首先利用Image.open读取了图片文件,然后调用了pytesseract的image_to_string()方法,再将其识别结果输出。

  

  完美!!!!开心,哈哈哈哈

猜你喜欢

转载自www.cnblogs.com/gcgc/p/11325581.html