首页 > 编程语言 >python——代码识别接口请求返回的图片中的内容

python——代码识别接口请求返回的图片中的内容

时间:2024-07-26 17:54:22浏览次数:15  
标签:python image base64 接口 pytesseract rsv 识别 picNumber 图片

【场景】

测试使用图片验证码登录

接口返回的是图片的base64编码,我们需要

1、将base64编码转为图片

2、去识别图片中的验证码,然后再拿验证码去做后续的图片验证码登录测试

【参考链接】

https://blog.51cto.com/u_16213316/10678659

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=python%E8%A7%A3%E6%9E%90base64%E7%9A%84%E5%9B%BE%E7%89%87%E4%B8%AD%E7%9A%84%E6%96%87%E5%AD%97&fenlei=256&oq=python%25E8%25A7%25A3%25E6%259E%2590base64%25E5%259B%25BE%25E7%2589%2587%25E4%25B8%25AD%25E7%259A%2584%25E5%2586%2585%25E5%25AE%25B9&rsv_pq=f0b3d25e00b50591&rsv_t=9318eS%2FzPfSIiP0S3HbskcjMS8Xj3wmHhHpLInUt%2Fc7L6rmeZfnK%2FkaE4YQ&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_btype=t&inputT=6010&rsv_sug3=85&rsv_sug2=0&rsv_sug4=7622

https://blog.csdn.net/u014642921/article/details/136093403

【准备】

参考链接,需要先下载一个识别图片的软件,再配置环境变量,再配置什么cmd参数,还有pip一些包

【代码】

 1 import base64
 2 from PIL import Image
 3 import io
 4 import pytesseract
 5 pytesseract.pytesseract.tesseract_cmd=r'C:\Program Files\Tesseract-OCR\tesseract.exe'
 6 
 7 
 8 picture64="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"
 9 
10 # 解码Base64字符串
11 image_data = base64.b64decode(picture64)
12 
13 # 将字节流转换为PIL图片
14 image = Image.open(io.BytesIO(image_data))
15 
16 # 使用Tesseract进行OCR识别
17 picNumber = pytesseract.image_to_string(image)
18 
19 #不知道为啥转成数字之后,后面有两个\n换行符,所以改为取前四个数字
20 picNumber=picNumber[:4]
21 
22 print(picNumber)
View Code

写法2

 

标签:python,image,base64,接口,pytesseract,rsv,识别,picNumber,图片
From: https://www.cnblogs.com/hushuer/p/18325913

相关文章

  • python中的无损字典更新
    是否有一个库函数可以实现像这样的非破坏性字典更新defupdate(d,key,val):d=d.copy()d[key]=valreturnd在Python中,没有直接用于非破坏性字典更新的内置库函数。但是,你可以使用多种方法来实现相同的结果。1.使用dict.copy()和更新......
  • 上传到 Microsoft 应用商店的 Python 应用在上传 MSIX 或 .exe 文件之前是否需要获得
    我刚刚完成了桌面应用程序的开发工作,我想开始在Microsoft应用商店上销售该应用程序。我不确定许可部分。我想实现一种解决方案,当一个人下载应用程序时,他通过商店付费,如果他在下载时没有安装它,他获得的安装文件将被锁定,只能安装在同一台计算机上。如果他尝试在另一台计算机上使......
  • 网页抓取 雅虎财经 Python
    我正在尝试从损益表、资产负债表和现金流量报告中收集数据框中给定股票代码的雅虎财务数据。(下面提供了URL)我从使用yfinance的资产负债表中使用了此函数没有像雅虎财经那样的“总债务”但它只适用于股票代码“AAPL”而没有其他内容。我想要一个更强大的网络抓取......
  • Python Selenium 操作链可以工作,但会停止我在 Firefox 中的程序
    我有时使用ActionsChains时遇到任何问题,今天它不起作用,你知道为什么吗?scrolling_bar=driver.find_element(By.CSS_SELECTOR,"#scrolling_bar")start=scrolling_bar.locationActionChains(driver)\.drag_and_drop_by_offset(scrolling_bar,start......
  • Java 接口
    概念一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。使用案例接口基于阿里云和腾讯云抽取出来的公共的短信接口CommonSmsService:packagecom.lyj.demo.sms;publicinterfaceCommonSmsServiceInterfa......
  • 在 Python 中将 Kivy 文件选择器添加到 PopUp
    我一直在尝试通过应用程序的按钮释放创建文件选择器弹出窗口。我分别管理了FileChooser和Popups,但无法将两者一起解决,这里有人可以帮助解决问题吗?我正在尝试用Python而不是Kivy.lang来实现PopUp,因为这是我在弹出窗口方面的经验。我也无法让KivyDoc示例正常工作。我......
  • Python基础知识点(1)基本语句
    基本语句1.if语句if表达式:语句块其中,表达式是一个返回True或False的表达式。如果表达式为True,则执行if下面的语句块;如果为False,则跳过语句块执行下面的语句。2.if…else语句if表达式:语句块1else:语句块2其中,表达式是一个返回True或False的表达式。如果......
  • 【MATLAB源码】机器视觉与图像识别技术(4)---模式识别与视觉计数
    系列文章目录第一篇文章:【MATLAB源码】机器视觉与图像识别技术—视觉系统的构成(视频与图像格式转换代码及软件下载)第二篇文章:【MATLAB源码】机器视觉与图像识别技术(2)—图像分割基础第三篇文章:【MATLAB源码】机器视觉与图像识别技术(2)续—图像分割算法第四篇文章:【MATL......
  • 使用Python实现深度学习模型:语言翻译与多语种处理
    引言语言翻译和多语种处理是自然语言处理(NLP)中的重要任务,广泛应用于跨语言交流、国际化应用和多语言内容管理等领域。通过使用Python和深度学习技术,我们可以构建一个简单的语言翻译与多语种处理系统。本文将介绍如何使用Python实现这些功能,并提供详细的代码示例。所需工具......
  • python框架之Flask
    之前写过有关flask-restful: https://www.cnblogs.com/xingxia/p/flask_restful.html虽然早期使用python进行web应用搭建的使用该框架,但是好像很少总结,在此记录一下 [安装]pip3installflask [使用]#导入类库fromflaskimportFlask#创建实例......