百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

在Python中使用tesseract识别验证码

off999 2024-10-23 12:52 39 浏览 0 评论

前言

在对网站数据进行爬取的过程中,由于访问过于频繁或是其他的原因,经常会出现输入验证码进行验证的情况,面对这种验证码验证的问题,一般有三种解决方法:

  • 第一种,最简单也是最费时的,手动输入验证码;
  • 第二种,使用一些公司的API接口对验证码进行判别和输入;

  • 第三种,使用tessract对验证码进行识别;

在这里,我们使用tessract对验证码进行识别。

Tesseract简介

tesseract是谷歌开源的一个ORC组件,并支持语言的训练,支持中文的识别(需要下载语言包)

Python中使用Tesseract

在Python中安装Tesseract一共分为三步:

1、pip安装pytesseract及其他依赖库

pip pytesseract

在使用pytesseract中需要读取图像,所以还需要安装Pillow

2、安装tesseract

下载并安装:https://tesseract-ocr.googlecode.com/files/tesseract-ocr-setup-3.02.02.exe

3、修改tesseract.py文件

防止提示没有匹配的文件

# tesseract_cmd = 'tesseract'
tesseract_cmd = "C:/Program Files (x86)/Tesseract-OCR/tesseract.exe" # tesseract的安装目录

防止提示Unicode编码错误

# f = open(output_file_name)
f = open(output_file_name,encoding='utf-8')

做完这三步,就可以使用tesseract基本的功能了。

下面来看看在实际的代码中如何利用tesseract进行验证码识别:

原始的验证码图像为:


示例验证码为:

#coding:utf-8
'''
 验证码识别
'''
from PIL import Image,ImageFilter,ImageEnhance
import pytesseract
# 二值化
threshold = 140
table = []
for i in range(256):
 if i < threshold:
 table.append(0)
 else:
 table.append(1)
# 识别验证码
def get_vcode():
 # 打开原始图像
 image = Image.open("getimgbysig.jpg")
 # image = Image.open("e:/a.jpg")
 # 将图像转为灰度,并另存为
 bimage = image.convert('L')
 bimage.save('g'+"getimgbysig.jpg")
 # 进行二值化处理,并另存为
 out = bimage.point(table,'1')
 out.save('b'+"getimgbysig.jpg")
 icode = pytesseract.image_to_string(image)
 bcode = pytesseract.image_to_string(bimage)
 vcode = pytesseract.image_to_string(out)
 print(icode,bcode,vcode)
if __name__ == '__main__':
 get_vcode()

结果输出为:7364,说明识别成功了。

对于简单、清晰的数字,没有经过任何训练的Tesseract还是能够很精确地识别出来。而对于那些模糊、变形的数字、字母或是中文,就需要先对Tesseract进行训练了,暂且不表。

觉得文章不错或者对你有用,可以关注小编,后面持续更新更多精彩内容哟~


相关推荐

u盘启动杀毒软件(u盘杀毒系统)

  有,但是主要是专杀工具,全面的综合杀毒软件基本上没有,因为没什么用。  1、放在U盘里的杀毒软件,就是不安装,也不监控,只杀毒的软件。  2、目前的杀毒软件的工作机制,主要是监控,监控电脑不感染病...

联想维修站点查询官网(联想 维修 服务网点)

您可以在联想的官方网站上查询到附近的授权维修服务点,或者拨打联想的客服电话寻求帮助。在维修服务点,您可以享受到专业的维修服务,包括硬件故障、软件问题、系统优化等方面的维护和维修。维修人员将会根据您的电...

怎么登录hotmail邮箱(邮箱登陆hotmail)
  • 怎么登录hotmail邮箱(邮箱登陆hotmail)
  • 怎么登录hotmail邮箱(邮箱登陆hotmail)
  • 怎么登录hotmail邮箱(邮箱登陆hotmail)
  • 怎么登录hotmail邮箱(邮箱登陆hotmail)
电脑不识别移动硬盘(移动硬盘灯亮但不读取)

电脑不能识别移动硬盘可能是由于以下原因造成的:1.电脑和硬盘之间的连接首先,可以确保移动硬盘正确连接到电脑上,检查USB接口是否松动或损坏,可以尝试更换USB线或者尝试连接到其他USB接口看是否能够...

键盘的win键在哪里(电脑键盘的win键在哪里)

win键就是电脑键盘上显示WINDOWS标志的按键。位于CTRL键与ALT键两个键之间,win键的具体位置一般电脑键盘上有左右两个。Windows键是一种特殊的键,通常位于键盘的左下角。它的图案是一个...

新手学做ppt(新手学做ppt的软件有哪些)
  • 新手学做ppt(新手学做ppt的软件有哪些)
  • 新手学做ppt(新手学做ppt的软件有哪些)
  • 新手学做ppt(新手学做ppt的软件有哪些)
  • 新手学做ppt(新手学做ppt的软件有哪些)
ghost全盘备份步骤图(用ghost怎么进行全盘备份)

可以用手动备份到指定分区。一、用一键Ghost还原中的“中文向导”备份开始-程序-一键Ghost-选出“中文向导”,Ghost中文向导-1、备份文件默认是“第1硬盘第1分区”,如果不是,将鼠标指针移...

键盘的windows键是哪一个(键盘上windows键是哪个键)
键盘的windows键是哪一个(键盘上windows键是哪个键)

windows键就是电脑键盘上ctrl键和alt键之间的按键,位于左下角。它带着微软的徽标,跟开始菜单一样的图标,它属于辅助按键,主要与其它按键组合使用,实现一些特定的功能,组合成多种快捷操作方式。这里上面所知的Win键其实就是键盘上的Wi...

2025-12-31 10:51 off999

win10打开设置快捷键(win10打开设置快捷键是什么)

1、首先打开电脑,在任务栏的语言地方点击一下再点击语言首选项。2、然后在新的界面里点击选择左侧“高级设置”按钮。3、之后在新的界面里点击选择“更改语言栏热键”按钮。4、然后在新的界面里点击选择“更改热...

flash插件下载手机版下载安装

华为手机的最新系统版本已经不再支持FlashPlayer,这是由于Adobe已于2020年底停止更新和支持FlashPlayer。因此,如果您使用最新的华为手机系统,可能无法安装和使用Flash...

官方应用商店下载(小米官方应用商店下载)

1.审核和验证:应用商店会对应用进行审核和验证,确保其质量和可靠性。开发者需要满足一定的要求才能在应用商店上架应用。而官网下载的应用没有经过此类审核和验证,因此用户需要自行评估其质量和可信度。2....

主题软件免费(主题软件免费推荐)

下载主题方法:一、打开手机找到APPStore应用软件,二、点击进去在下面找到有个搜索,点击它查找主题壁纸,三、弹出来很多主题壁纸,根据下载量和个人喜欢的应用主题选择下载相应的主题,四、下载成功后即...

一芯fc1178bc盘量产教程(一芯量产工具使用教程)

fc1178bc量产工具没有显示u盘拔下U盘,关闭量产工具,再插上U盘(先要确认卸载了安国的驱动,如果不能确认,运行LoadDriver.exe卸载),然后插上U盘,右键我的电脑---属性---硬件-...

电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
u盘内文件损坏怎么办(u盘内文件损坏怎么办解决)

以下是8种修复U盘文件损坏的方法:1.风险自担型:试图直接复制文件如果U盘的部分文件损坏,您可能可以使用此方法。请复制文件您能打开的所有文件,并尝试将它们粘贴到桌面或其他文件夹中。但是请...

取消回复欢迎 发表评论: