“人生苦短,快用Python”
在爬虫过程中,经常会遇到各种验证码,如:图形验证码、极验滑动验证码、点触验证码、微博宫格验证码等;这时,可以利用OCR技术识别图形验证码进行验证。OCR,即Optical Character Recognition,是指光学字符识别,通过扫描字符将其形状翻译成电子文本。在Python3中,可以通过pytesseract库调用Tesseract-OCR使用OCR技术识别图形验证码。
一、安装 Tesseract-OCR
安装:在网站 https://digi.bib.uni-mannheim.de/tesseract/ 下载Tesseract-OCR安装包,如:tesseract-ocr-w64-setup-v5.0.0.20190623.exe,双击执行默认安装。在网站 https://github.com/tesseract-ocr/tessdata 下载tessdata语言包,如:tessdata-master.zip,解压缩后将所有文件复制到Tesseract-OCR安装路径下的tessdata文件夹中。 配置:将Tesseract-OCR的安装路径添加到系统环境变量Path中。
添加新的环境变量,变量名为TESSDATA_PREFIX,值为Tesseract-OCR安装路径下的tessdata子文件夹路径。
在cmd下执行命令:tesseract --version,显示如下结果,则表示Tesseract-OCR安装配置成功。
在cmd下执行命令:tesseract --list-langs,显示如下结果,则表示tessdata语言包配置成功,chi_sim表示简体中文。
二、安装 pytesseract
通过pip包管理器安装tesseract的python绑定库pytesseract,同时,会自动安装pytesseract的图像处理依赖Pillow库。安装命令:pip install pytesseract
pip install pillow
测试图片:
测试代码:
import pytesseract
from PIL import Image
image = Image.open("1.jpg")
text = pytesseract.image_to_string(image, lang='chi_sim')
print(text)
运行报错:
pytesseract.pytesseract.TesseractNotFoundError:
tesseract is not installed or it's not in your PATH.
See README file for more information.
解决方法:将pytesseract安装路径下的pytesseract.py文件中的行:
tesseract_cmd = 'tesseract' 修改为tesseract可执行文件的真实路径:如
tesseract_cmd = 'D:/ProgramFiles/Tesseract-OCR/tesseract.exe'
运行结果:
pytesseract 的常用方法
pytesseract.image_to_alto_xml()
pytesseract.image_to_boxes()
pytesseract.image_to_data()
pytesseract.image_to_osd()
pytesseract.image_to_pdf_or_hocr()
pytesseract.image_to_string()
Talk is cheap.
Show me the code.