目录

  • 图像验证码识别技术:
    • Tesseract:
    • 安装
    • 在命令行中使用 tesseract 识别图像:
    • 在代码中使用tesseract 识别图像


图像验证码识别技术:

阻碍我们爬虫的。有时候正是在登陆或者请求一些数据时候的图形验证码。因此这里我们讲解一些能将图片翻译成文字的技术。将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition)简称 OCR。实现OCR的库不是很多,特别是开源的。因为这块存在一定的技术壁垒(需要大量的数据、算法、机器学习‘深度学习等),并且如果做好了具有很高的商业价值。因此开源的比较少。这里介绍一个比较优秀的图像识别开源库:Tesseract。

Tesseract:

Tesseract是一个OCR库,目前由谷歌赞助。Tesseract是目前公认最优秀、最准确的开源OCR库。Tesseract具有很高的识别度,也具有很高的灵活性,他可以通过训练是识别任何字体。

安装

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

设置环境变量

安装完成后,如果想要在命令行中使用 Tesseract,那么应该设置环境变量。 Mac 和 Linux 在安装的时候就默认已经设置好了。

在Windows下把 tesseract.exe 所在的路径 添加到 PATH 环境变量中。
还有一个变量需要设置的是,要把训练的数据文件路径也放到环境变量中。在环境变量中,添加一个 TESSDATA_PREFIX = D:\Tesseract-OCR\tessdata 。

在命令行中使用 tesseract 识别图像:

使用命令 :tesseract 图片路径 文件路径。示例:

tesseract a.png a

那么就会识别出a.png 中的图片,并且把文字写入刀 a.txt 中,如果不想写入文件直接想显示在终端,那么不要加文件名就可以了。

在代码中使用tesseract 识别图像

在Python 代码中操作 tesseract。需要一个库,叫做 pytesseract。 通过pip 的方式即可安装:

pip install pytesseract
```
并且,需要读取图片,需要借组一个第三方库叫做 PIL。通过 pip 的方式即可安装:

```
pip install pillow
```
使用 pytesseratc 将图片上的文字转换为文本文字的示例代码如下:

```python
import pytesseract
# 导入Image库
from PIL import Image


# 指定tesseract.exe所在的路径
pytesseract.pytesseract.tesseract_cmd = r'D:\Tesseract-OCR\tesseract.exe'


#打开图片
image = 'c.png'


#调用image_to_string将图片转换为文字
text = pytesseract.image_to_string(image,lang='chi_sim')
print(text)

```