图形验证码是验证码的一种,是根据图里面的数字和字母输入进去,正确后便可以登陆程序的验证方式。现在很多网站都使用了这种技术,我们应该如何通过
python
正确的识别到图形验证码呢?

1、安装tesseract
这里我们使用Tesseract
软件来进行识别,这个需要提前在你自己的电脑上安装,而后python
通过调用该软件来进行识别,不同的平台,比如windows
、linux
、mac
的安装,需要下载适合自己平台的软件来安装,安装方式大同小异,我这里使用的是windows
平台;
软件下载地址为:
https://tesseract-ocr.github.io/tessdoc/Downloads.html
访问以上地址之后,根据自己的需要,下载不同的版本即可,需要注意的是安装路径最好不要存在中文字符。
2、验证tesseract
需要我们先配置个环境变量,只需要将tresseract
的安装目录添加到环境变量即可;
然后我们在命令行执行如下命令:
tesseract 欲识别图片的地址 文本名字
# 第一个参数是你想识别图片的完整地址
# 第二个是识别结束之后将结果输出到这个文本中,不需要写后缀名
例如:
识别的图片为:

代码:
PS C:\Users\22768\Desktop> tesseract C:\Users\22768\Desktop\1654762989456.jpg 220609
Tesseract Open Source OCR Engine v3.02 with Leptonica
PS C:\Users\22768\Desktop>
然后他就会将识别结果输出到220609.txt
这个文本当中,我们看下这个文本中的内容:
123456
3、python识别图形验证码
我们接下来就使用python识别图片中的文字,也就是验证码;
我们需要提前安装几个模块,命令如下:
pip install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
然后我们需要看下支持什么语言:
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" # 这个地址要写你实际安装路径
print(pytesseract.get_languages(config=''))
我这里的输出结果是两种,如下:
['eng', 'osd']
当我们知道支持的语言之后,我们就来通过python
识别一下:
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe"
image = Image.open(r"C:\Users\22768\Desktop\1654762989456.jpg")
text = pytesseract.image_to_string(image, lang='eng+osd')
print(text)
输出结果如下:
123456
至此,本文结束,下面我们将就此开展深层次的使用。

往期推荐
文章转载自运维家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




