Python爬虫——图形验证码
1.Tesseract简介
在爬虫与反爬的技术进化过程中,产生了一种我们(“spider-man”)常见的却难以解决的问题——图形验证,这些验证常见于登录或者请求时。为了解决这个问题,我们在这里采用的是将图形翻译成文字的技术,即光学文字识别(Optical Character Recognition),简称OCR。由于这部分存在技术壁垒(需要大量的数据、算法、机器学习、深度学习知识等)与极高的商业价值,使得实现OCR的库(特别是开源)并不是很多。这里主要介绍的一个较为优秀的图像识别开源库:Tesseract。
- Tesseract是一个将图像翻译成文字的OCR库,目前由谷歌赞助。它是目前公认最优秀且准确的开源OCR库。Tesseract具有很高的识别度,也具有很高的灵活性,且它可以通过训练识别任何字体
- Windows系统安装:可以在这里进行下载
在Python中调用Tesseract:
pip install pytesseract
- 设置环境变量
安装完成后,如果想要在命令行中使用Tesseract,那么应该设置环境变量
Mac和Linux在安装时就默认设置好了,而在Windows下需要把tesseract.exe所在的路径添加到Path环境变量中。
步骤:我的电脑——属性——高级系统设置——环境变量——在Path中添加tesseract.exe的路径 - 此外,还需要把训练的数据文件的路径放在环境变量中。
步骤:前面和以上步骤一样,最后一步新建一个环境变量,需要设置tessdata的所在路径
当设置完成后我们如何查看是否安装成功呢?
这时我们需要进入命令提示符窗口,并输入tesseract --version查看版本,正常运行则表示安装成功
- 在命令行中使用tesseract
语法:tesseract 图片路径 文件路径
例如:tesseract demo.png demo
2.在python使用tesseract识别图像
import pytesseract
from PIL import Image
# 指定tesseract驱动的路径和数据包的路径
pytesseract.pytesseract.tesseract_cmd = r'D:\Tesseract\Tesseract-OCR\tesseract.exe'
tessdata_dir_config = r'"D:\Tesseract\Tesseract-OCR\tessdata"'
# 打开图片 open里面为图片路径
image = Image.open(r