自动化测试验证码tesseract安装以及python联调

news2024/11/19 15:35:06

前提

经常会遇到登录系统时候需要输入动态验证码的情况,但是自动化如何识别图片然后登陆系统?
在这里插入图片描述
需要用到pytesseract识别验证码图片以及PIL图像处理方法

import pytesseract
from PIL import Image, ImageEnhance

1、tesseract安装

  • OCR,即Optical Character Recognition:光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。
  • tesseract下载地址:
https://digi.bib.uni-mannheim.de/tesseract/

选择如下进行安装
在这里插入图片描述
在安装的过程中,安装的路径一般是:
C:\Program Files (x86)\Tesseract-OCR,可以不用修改。
这里如果没有默认的话,要记住你的安装位置,因为之后需要配置系统的环境变量

配置环境变量
路径:高级系统设置——>环境变量——>系统变量中path路径——>将C:\Program Files (x86)\Tesseract-OCR添加进去。
在这里插入图片描述
配置完成后在cmd中输入tesseract -v,如果出现如下图所示,说明环境变量配置成功

E:\code\img>tesseract -V
Usage:
  tesseract --help | --help-extra | --version
  tesseract --list-langs
  tesseract imagename outputbase [options...] [configfile...]

OCR options:
  -l LANG[+LANG]        Specify language(s) used for OCR.
NOTE: These options must occur before any configfile.

Single options:
  --help                Show this help message.
  --help-extra          Show extra help for advanced users.
  --version             Show version information.
  --list-langs          List available languages for tesseract engine.

验证是否安装成功

图片准备:
在这里插入图片描述
此时,注意图片的选择,最好选择辨识度高一些的,如果直接上彩色的,会识别不成功

将该图片命名为xin.png,然后放在E盘里面的E:\code\img。然后使用cmd先到E盘的E:\code\img目录,然后使用tesseract命令进行测试。

tesseract xin.png result 

结果:

E:\code\img>tesseract xin.png result

E:\code\img>

在这里插入图片描述
多一个result文件

在这里插入图片描述

说明安装成功了

tesseract联调python

  • 安装对应模块
pip install pytesseract
  • 准备图片
将图片放入pycharm所建的工程文件夹下
  • 测试代码
from PIL import Image
import pytesseract

text = pytesseract.image_to_string(Image.open("xin.png"))
print(text)

之后运行代码,这个时候,你会遇到这个问题:

Traceback (most recent call last):
  File "D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 170, in run_tesseract
    proc = subprocess.Popen(cmd_args, **subprocess_args())
  File "D:\Python36\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "D:\Python36\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:/python/20180911.py", line 4, in <module>
    text = pytesseract.image_to_string(Image.open(r'D:\chromeDownload\image.png'))
  File "D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 294, in image_to_string
    return run_and_get_output(*args)
  File "D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 202, in run_and_get_output
    run_tesseract(**kwargs)
  File "D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 172, in run_tesseract
    raise TesseractNotFoundError()
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path

处理办法

pytesseract安装后,在python的//venv//Lib目录下site-packges下会生成一个pytesseract文件夹,在文件夹中找到pytesseract.py,使用记事本之类软件打开pytesseract.py,找到如下:

tesseract_cmd = 'tesseract'

将tesseract_cmd = 'tesseract’修改为:
tesseract_cmd = ‘C:/Program Files (x86)/Tesseract-OCR/tesseract.exe’
(注意左斜杠和右斜杠,注意是自己tesseract的安装路径如果是自定义需要写对应的)
表示tesseract_cmd配置的是你安装tesseract的绝对路径,这样就能找到tesseract了。修改后保存,再去运行python代码,就可以成功了。

比如我的

# tesseract_cmd = 'tesseract'
tesseract_cmd = 'E://tool//tesseract//tesseract.exe'

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESP32报错-Invalid chip id. Expected 9 read 0. Bootloader for wrong chip?

异常现象&#xff1a; 如下图所示&#xff0c;ESP32的 bootloader 运行时候一直报错&#xff0c;导致设备频繁重启&#xff0c;无法跳转至APP 原因及解决方式&#xff1a; 这个报错的原因就是程序编译时候选择的芯片型号和当前实际运行的芯片型号不一致&#xff0c;导致无法…

两个链表的第一个公共节点

题目描述 输入两个链表&#xff0c;找出它们的第一个公共节点。 如下面的两个链表&#xff1a; 在节点 c1 开始相交。 示例 1&#xff1a; 输入&#xff1a;intersectVal 8, listA [4,1,8,4,5], listB [5,0,1,8,4,5], skipA 2, skipB 3 输出&#xff1a;Reference of…

「一键智能去除文件名中的特殊符号,让文件批量改名更加简单!」

文件批量改名一直是个繁琐的任务&#xff0c;其中最麻烦的问题之一就是文件名中的特殊符号。手动去除这些符号是一项耗时而繁琐的工作&#xff0c;但现在有一个更加智能的解决方案&#xff0c;可以让你快速的去除文件名中的特殊符号。方法如下&#xff1a; 首先&#xff0c;我…

漏洞预警|Apache StreamPipes 权限升级漏洞

棱镜七彩安全预警 近日&#xff0c;棱镜七彩威胁情报团队探测到开源项目Apache StreamPipes 存在权限升级漏洞&#xff0c;经分析研判&#xff0c;向全社会发起开源漏洞预警公告&#xff0c;提醒相关安全团队及时响应。 项目介绍 Apache StreamPipes&#xff08;incubating&…

【正点原子STM32连载】 第四十三章 DHT11数字温湿度传感器 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第四…

如何在 ZBrush 和 UE5 中创建精灵吟游诗人(P1)

小伙伴们大家好&#xff0c;今天 云渲染小编给大家带来的是CG艺术家Hugo Sena关于“精灵吟游诗人”项目背后的工作流程&#xff0c;讨论了角色身体、服装和竖琴的工作流程&#xff0c;并解释了如何在虚幻引擎 5 中设置灯光。篇幅较长&#xff0c;分为上下两篇&#xff0c;大家接…

导出csv列错乱

今天在导出CSV文件的时候文件的列错乱了。 场景是将数据库信息导出&#xff0c;采用的是CSV&#xff0c;比excel快点。然后数据需要经过处理后再导入到其他库&#xff0c;导入的时候部分文件解析出错了&#xff0c;原因就是CSV文件内容的列和导入映射的实体字段数量对不上。见…

把你的 Python 技能从 “Hello World“ 升级到 “万能钥匙“:掌握 Python 的输出、输入、数据类型转换和运算符!

前言 这篇文章我将为大家分享 python 的输出、输入、数据类型的转换和运算符 相关的知识。如果大家也想跟着博主一起学习 python &#xff0c;欢迎订阅专栏哦python学习&#x1f60a; 输出 我们都知道&#xff0c;要想知道程序的运行结果&#xff0c;就需要将结果给打印到屏…

EventLog Analyzer:保障企业等保合规的安全利器

企业等保合规是现代信息安全管理的重要组成部分。在信息化时代&#xff0c;企业面临着越来越多的网络安全威胁和合规要求。为了确保企业的信息系统安全可靠&#xff0c;以及满足相关法规和标准的要求&#xff0c;企业需要借助强大的安全事件管理工具。EventLog Analyzer作为一种…

【力扣】前缀和/滑动窗口:209. 长度最小的子数组

【力扣】前缀和/滑动窗口&#xff1a;209. 长度最小的子数组 文章目录 【力扣】前缀和/滑动窗口&#xff1a;209. 长度最小的子数组1. 问题2. 题解2.1 暴力法2.2 前缀和 二分查找2.3 滑动窗口 参考 1. 问题 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组…

SRGAN图像超分重建算法Python实现(含数据集代码)

摘要&#xff1a;本文介绍深度学习的SRGAN图像超分重建算法&#xff0c;使用Python以及Pytorch框架实现&#xff0c;包含完整训练、测试代码&#xff0c;以及训练数据集文件。博文介绍图像超分算法的原理&#xff0c;包括生成对抗网络和SRGAN模型原理和实现的代码&#xff0c;同…

c++重载函数和虚函数(重写)为什么分别在编译和运行时候确定

函数调用的本质&#xff1a; 函数调用实际上是执行函数体中的代码函数体是内存中的一个代码段函数名代表改代码段的首地址&#xff0c;函数执行时就从这里开始 所以执行一个函数的时候&#xff0c;需要知道具体的函数地址&#xff0c;才能执行函数 重载、重写和隐藏的区别 …

大家想知道ai写作宝怎么样吗?

ai写作是指利用人工智能技术自动生成文章、报告、新闻等文本内容的过程。它可以实现大规模、高效率、低成本的文本创作&#xff0c;免去人工编写的繁琐过程&#xff0c;节约了很多时间和精力。目前在文学创作、新闻报道、广告文案、社交媒体内容创作等方面&#xff0c;ai写作都…

mysql中将多行数据合并成一行数据

mysql中将多行数据合并成一行数据 一个字段可能对应多条数据&#xff0c;用mysql实现将多行数据合并成一行数据 例如&#xff1a;一个活动id&#xff08;activeId&#xff09;对应多个模块名&#xff08;modelName&#xff09;,按照一般的sql语句&#xff1a; SELECT am.act…

英伟达,不止于GPU

光子盒研究院 2013年至2023年这十年&#xff0c;有一家公司的市值翻了115倍、一跃成为美国股市回报率最高的公司——这就是英伟达。 黄仁勋出生于中国台湾&#xff0c;四岁随父母移民美国。1984年大学毕业&#xff0c;获得俄勒冈州立大学和斯坦福大学工程学位。 1993年&#xf…

《九》TypeScript 中的内置工具

TypeScript 内置了很多类型工具&#xff0c;来辅助进行类型转换。 Partial<Type>&#xff1a; Partial<Type>&#xff1a;用于构造一个所有属性都为可选属性的类型。 interface IPerson {name: stringage: number }// personOptional 类型的所有属性都是可选的 …

C++11【二】

文章目录 一、lambda表达式二、线程库三、包装器四、绑定&#xff08;不常用&#xff09; 一、lambda表达式 如果待排序元素为数据集合中的元素和自定义类型&#xff0c;需要用户定义排序时的比较规则不同如下代码&#xff0c;但都可以使用sort方法&#xff0c; #include <…

前端Vue3使用Moment Timezone处理不同时区时间

文章目录 前言一、基本时间概念UTC &#xff0c; GMT本地时间 为了方便比较&#xff0c;图中黑色背景的是 中国&#xff08;China&#xff09;区电脑&#xff0c;白色主题背景的是美国&#xff08;US&#xff09;区电脑&#xff09;2023-06-27T14:00:00.000Z 二、实际案例表单填…

正确认识:DOTA-E[c(RGDyK)2],DOTA标记序列多肽,双环肽螯合物

试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a; DOTA-E[c(RGDyK)2]为双环肽螯合物&#xff0c;DOTA标记序列多肽&#xff0c;螯合物前体多肽&#xff1a;放射性金属元素&#xff0c;例如&#xff1a; Cu、 Ga、 Lu、等可以通过与…

0基础入门---第四章---神经网络的学习

&#x1f31e;欢迎来到深度学习的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f64f;作者水平很有限&#xff0c;如果发现错误&#xff…