使用pytesseract库识别图形验证码的简单案例

import requests
from PIL import Image
import pytesseract

# 获取验证码图片
url = 'http://jw.glutnn.cn/academic/getCaptcha.do?captchaCheckCode=0&random=0.20354331774429668'
response = requests.get(url)

# 保存验证码图片
with open('captcha.png', 'wb') as f:
    f.write(response.content)

# 打开并显示验证码图片
image = Image.open('captcha.png')
image.show()

# 使用tesseract识别验证码内容
captcha = pytesseract.image_to_string(image)
print('验证码内容:', captcha)

需要注意:

1.单独的pytesseract库是无法运行的,需要下载Tesseract-OCR
2.下载链接:https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe
3.安装:按照默认的安装或者指定路径都可以,我这里将安装路径改为D:\Programe Files (x86)\Tesseract-OCR,默认是C:\Programe Files (x86)\Tesseract-OCR
4.配置环境变量(系统变量):
变量名(N):TESSDATA_PREFIX

变量值(V):D:\Programe Files (x86)\Tesseract-OCR\tessdata

5.找到pytesseract库的pytesseract.py文件,修改文件配置,三处:

# 增加tessdata文件的路径变量
tessdata_dir_config = '--tessdata-dir "D:\\Programe Files\\Tesseract-OCR\\tessdata"'

# 修改一下tesseract_cmd变量
# 由原来的
# tesseract_cmd = 'tesseract'
# 修改为
tesseract_cmd = 'D:/Programe Files/Tesseract-OCR/tesseract.exe'

# 将tessdata_dir_config变量直接添加到image_to_string函数中
def image_to_string(
 image,
lang
=None,
config=tessdata_dir_config,
nice=0,
output_type=Output.STRING,
timeout=0, ): """ Returns the result of a Tesseract OCR run on the provided image to string """ args = [image, 'txt', lang, config, nice, timeout]

最后运行以上代码就可以识别出图片验证码啦

posted @ 2024-04-22 21:07  开心超人GGB  阅读(7)  评论(0编辑  收藏  举报