首页 > 其他分享 >使用pytesseract库识别图形验证码的简单案例

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

时间:2024-04-22 21:26:54浏览次数:23  
标签:tessdata Tesseract image 验证码 pytesseract 图形 tesseract

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]

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

标签:tessdata,Tesseract,image,验证码,pytesseract,图形,tesseract
From: https://www.cnblogs.com/goolk/p/18151558

相关文章

  • Vscode使用Git图形化工具IDE
    Vscode使用Git图形化工具IDE检查是否成功安装Git环境windows搜索栏输入PowerShell,右键以管理员身份运行输入git敲击回车重新打开Vscode(已安装ssh拓展)打开任意一个工程文件夹打开Git控制栏源代码管理Ctrl+shift+G初始化储存库提交推送选择要推送的仓......
  • HarmonyOS NEXT应用开发—验证码布局
    介绍本示例介绍如何使用Text组件实现验证码场景,并禁用对内容的选中、复制、光标。效果图预览使用说明单击组件可弹出输入法在进行验证码输入时,无法对中间单个数字进行更改,无法选中输入内容,无光标实现思路因为要禁用复制、选中等功能,这里使用了Text组件,而不是TextInput......
  • Delphi10.3开发的SQLite3的图形操作小软件
    链接:https://pan.baidu.com/s/1Glye61WgYd_wC0uOfx9ZoQ提取码:dqd9关键部份FDConnection1.GetTableNames('','','',ListBox1.Items);StringGrid1.Cells[1,i+1]:=FDMetaInfoQuery1.FieldByName('COLUMN_NAME').AsString;......
  • 企业微信hook 最新版 、企微输入验证码,二次扫码方案、发名片收消息功能,企业微信hook源
    ​产品说明在PC端企业微信客户端上发送自定义名片、封装企业微信功能为DLL,可与其他语言调用实现功能。DLL可以监听企业微信的所有消息接收和群消息,根据需求实现机器人、群发、自动消息推送、聊天机器人、监管数据收集等功能企业微信hook,企业微信功能api,自定义开发功能清......
  • WPF/C#:让绘制的图形可以被选中并将信息显示在ListBox中
    实现的效果如果你对此感兴趣,可以接着往下阅读。实现过程绘制矩形比如说我想绘制一个3行4列的表格:privatevoidButton_Click_DrawRect(objectsender,RoutedEventArgse){intRow=3;intCol=4;for(inti=0;i<Row;i++){......
  • Ubuntu 22.04切换图形界面和字符界面
    台式机上安装了Ubuntu22.04,经测试研究,默认进入的终端是tty2,总共可用的终端有有tty1-tty6,切换快捷方式为Ctrl+Alt+F1--F6,其中tty1,tty2是图形终端,其余为字符终端。一直想知道怎么在图形界面和字符界面之间进行切换,比如tty2是图形界面,我想把他切换为字符界面,怎么办?下面是字符界面......
  • 5. 验证码实现
    1.ImageServletpackagecom.fei.servlet;importjavax.imageio.ImageIO;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.a......
  • WPF基础:在Canvas上绘制图形
    Canvas介绍Canvas是WPF(WindowsPresentationFoundation)中的一种面板控件,用于在XAML中布置子元素。它提供了绝对定位的能力,允许元素在自由的二维空间中放置。Canvas上的子元素可以通过指定绝对位置(Left和Top属性)来放置,也可以使用附加属性来指定相对于Canvas的位置。Canvas对于需......
  • 【Xss-fiddler漏洞测试】通过该种方式 可以批量扫描也可以使用super xary 进行图形扫
    下载xary-社区版生成xary证书xxxgencaChrome安装证书-设置-隐私安全-安全-管理证书-导入 Chrome安装代理 Fiddler设置转向代理 命令行启动xary 启动xary,启动被测试网站-一边操作一边查看--触发后的命中效果    ......
  • Canvas图形编辑器-数据结构与History(undo/redo)
    Canvas图形编辑器-数据结构与History(undo/redo)这是作为社区老给我推Canvas,于是我也学习Canvas做了个简历编辑器的后续内容,主要是介绍了对数据结构的设计以及History能力的实现。在线编辑:https://windrunnermax.github.io/CanvasEditor开源地址:https://github.com/Wind......