python使用之识别验证码及相关问题

在使用Python做自动化时候遇到登录需要识别验证码问题,此时采用pytesseract模块,遇到异常:

pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information.

解决方式:

1、下载对应版本的“Tesseract-OCR”,下载地址:https://github.com/tesseract-ocr/tesseract/wiki 或者   https://github.com/UB-Mannheim/tesseract/wiki

下载文件名称:tesseract-ocr-w64-setup-v5.0.0-alpha.20201127.exe

2、安装Tesseract-OCR,请记住安装路径。

3、配置环境变量:

  (1)配置Tesseract-OCR环境变量:

    将Tesseract-OCR的安装路径配置在环境变量Path中。D:\Program Files\python38\Lib\site-packages\Tesseract-OCR 。如下图:

    

  (2)配置tessdata环境变量:

    新增一个变量名:TESSDATA_PREFIX。变量值为安装的Tesseract-OCR路径下的tessdata的路径。即,在Tesseract-OCR的安装路径后追加tessdata。D:\Program Files\python38\Lib\site-packages\Tesseract-OCR\tessdata。如下图

    

4、然后将pytesseract.py源码中

tesseract_cmd = 'tesseract'

修改为:

tesseract_cmd = r'D:\Program Files\python38\Lib\site-packages\Tesseract-OCR\tesseract.exe'

重新运行脚本,OK

如下图所示的登录页面。

附带识别验证码代码:

from selenium import webdriver
from PIL import Image
import pytesseract

def readvcode():
    dr = webdriver.Chrome("D:\softwarePro\BrowserDriver\chromedriver.exe")
    dr.maximize_window()
    dr.get(url)
    dr.save_screenshot('All.png')  # 截取当前网页,该网页有我们需要的验证码
    imgelement = dr.find_element_by_class_name('imgcode')
    location = imgelement.location  # 获取验证码x,y轴坐标
    size = imgelement.size  # 获取验证码的长宽
    rangle = (int(location['x']), int(location['y']), int(location['x'] + size['width']),
                  int(location['y'] + size['height']))  # 写成我们需要截取的位置坐标
    i = Image.open("All.png")  # 打开截图
    result = i.crop(rangle)  # 使用Image的crop函数,从截图中再次截取我们需要的区域
    result.save('result.png')
    text = pytesseract.image_to_string('result.png', 'eng').strip()

    dr.find_element_by_name("username").send_keys("admin")
    dr.find_element_by_name("password").send_keys("admin123")
    dr.find_element_by_name("validateCode").send_keys(text)
    dr.find_element_by_id("btnSubmit").click()

if __name__ == '__main__':
    readvcode()

带有噪点或者划线类的验证码以后更新。

(0)

相关推荐

  • 基于深度学习OpenCV与python进行字符识别

    重磅干货,第一时间送达 当我们在处理图像数据集时,总是会想有没有什么办法以简单的文本格式检索图像中的这些字符呢? 今天我们就一起看看有没有什么简单的办法可以实现这一功能~ 对于字符识别,我们找到了一些 ...

  • 用Python进行OCR图像识别,小白一定要收藏

    数据采集就怕遇到图片,只能看不能复制怎么办.手动将文字提取出来,要耗费很大的工作量.例如下图,某楼盘的一房一价表,怎么样发现单价低位的房子?光凭肉眼很难发现吧,能否让计算机进行文字的识别,然后再对这些 ...

  • Python上使用及安装tesseract

    Python上安装及使用tesseract 用于身份证识别 前期准备 下载 pillow和pytesseract直接在 pycharm里面下载即可. 接下来 tesseract-ORT下载,点击这里下 ...

  • pytesseract-谷歌 Tesseract OCR引擎包装的python库

    Python-tesseract是用于python的光学字符识别(OCR)工具.也就是说,它将识别并"读取"图像中嵌入的文本. Python-tesseract是Google Te ...

  • 拒绝反爬虫!教你搞定爬虫验证码

    文章来自:数仓宝贝库 文末有赠书福利! 文末有赠书福利! 文末有赠书福利! 导读:目前,许多网站采取各种各样的措施来反爬虫,其中一个措施便是使用验证码.随着技术的发展,验证码的花样越来越多.验证码最初 ...

  • 使用OpenCV和TesseractOCR进行车牌检测

    重磅干货,第一时间送达 目录 1)目的和简介 2)前言 3)使用OpenCV和Haar级联进行车牌检测 4)使用TesseractOCR识别和提取车牌号 目的与简介 当我们谈论AI时,计算机视觉绝对是 ...

  • 7行Python的人脸识别

    随着去年alphago 的震撼表现,AI 再次成为科技公司的宠儿.AI涉及的领域众多,图像识别中的人脸识别是其中一个有趣的分支.百度的BFR,Face++的开放平台,汉王,讯飞等等都提供了人脸识别的A ...

  • Selenium2+python自动化41-绕过验证码(add_cookie)

    前言 验证码这种问题是比较头疼的,对于验证码的处理,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的.如果你能破解,说明你们公司的验证码安全级别不高,那就需要提高级别了. 处理验证码,要么 ...

  • 使用OpenCV Python进行人脸识别

    先决条件 对图像分类的基本理解 Python 和深度学习知识 对深度学习中各种模块的概念理解 介绍 在这篇文章中,我们将看看什么是人脸识别?以及它与人脸检测有何不同? 我们先简单了解一下人脸识别的原理 ...

  • python爬虫20 | 小帅b教你如何识别图片验证码

    当你在爬取某些网站的时候 对于你的一些频繁请求 对方会阻碍你 常见的方式就是使用验证码 验证码的主要功能 就是区分你是人还是鬼(机器人) 人 想法设法的搞一些手段来对付技术 而 技术又能对付人们的想法 ...

  • 两行 Python 代码,精准识别一张图片的格式

    在有些时候,我们拿到了一张图片的二进制数据,但却不知道这张图片应该是什么格式.例如,某个 HTTP接口返回给你一段 Base64编码的图片数据,如下图所示: 这段 Base64编码的数据,实际上对应了 ...

  • Selenium2+python自动化40-cookie相关操作

    前言 虽然cookie相关操作在平常ui自动化中用得少,偶尔也会用到,比如登录有图形验证码,可以通过绕过验证码方式,添加cookie方法登录. 登录后换账号登录时候,也可作为后置条件去删除cookie ...

  • python接口自动化4-绕过验证码登录(cookie)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

  • Python的解释器种类以及相关特点?

    Python是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库的一门强类型的动态,可移植,可扩展,可嵌入的解释型编程语言 CPython 当我们从Python官方网站下载并安装 ...

  • 识别利益相关方能带来哪些好处?

    识别利益相关方,特别是客户或用户这样的重要的利益相关方,对于软件开发有着非常重要的影响. 识别利益相关方可以给软件开发带来一系列的好处,比如: 降低构建错误代码的可能性 由于已经识别出了关键的利益相关 ...