Python爬虫验证码识别(使用Tesseract OCR识别)

主要思路是根据教程使用源码安装完tesseract后,然后通过安装pillow与pytesseract打通python进行在python代码中引用使用。

I. 依赖安装

1
2
3
4
5
brew install automake autoconf libtool
brew install pkgconfig
brew install icu4c
brew install leptonica
brew install gcc

II. Tesseract编译安装

1
2
3
4
5
6
git clone https://github.com/tesseract-ocr/tesseract/
cd tesseract
./autogen.sh
./configure CC=gcc-8 CXX=g++-8 CPPFLAGS=-I/usr/local/opt/icu4c/include LDFLAGS=-L/usr/local/opt/icu4c/lib
make -j
sudo make install # if desired

III. 语言配置

需要识别语言配置(参照教程):

  1. 前面安装完后,你会发现在/usr/local/share/tessdata会有默认的data,将export TESSDATA_PREFIX='/usr/local/share/tessdata'配置到系统环境中
  2. 这里下载对应版本的语言包
  3. 将下载的语言包直接放到这个/usr/local/share/tessdata

比如我这边是4.0版本,我需要的是对英文的ocr识别(识别英文的验证码),我就直接下载4.00版本的eng.traineddata:

然后再将下载下来的eng.traineddata放到到/usr/local/share/tessdata中即可:

IV. 打通Python

这边打通python直接通过pytesseract,十分方便。

先安装pillow:

1
pip install pillow

再安装pytesseract:

1
pip install pytesseract

安装完成后就可以通过其在python中使用了,如:

1
2
3
4
5
6
7
8
9
10
11
try:
from PIL import Image
except ImportError:
import Image
import pytesseract
# Simple image to string
print(pytesseract.image_to_string(Image.open('test.png')))
# French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra'))

更多使用方法参照官方的文档。

Jacksgong wechat
欢迎关注Jacks Blog公众号,第一时间接收原创技术沉淀干货。