图片验证码破解

本文介绍了一种利用Python和外部工具识别图片验证码的方法,包括配置Pillow和Pytesseract库,处理和识别图片中的文字,以及使用百度AI进行更高精度的识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图片验证码破解

1、相关配置

图片处理工具 pip install pillo
图片识别工具 pip install pytesseract

图片识别工具链接
链接:https://pan.baidu.com/s/1lWp3zMXLiaQhm6N8ZPu2SQ
提取码:7o4c

解压后安装,安装的路径最好不要有中文,记住这个路径,需要用上
接下来配置这个工具,将这个工具加载到驱动中
找到site-packages这个文件夹,有可能这个文件夹在lib这个文件夹里,最终就是要找到pytesseract .py文件在这里插入图片描述
然后修改一下这个py文件,将路径添加进去

在这里插入图片描述

2、提取验证码图片中的内容

素材链接,包含验证码图片等
链接:https://pan.baidu.com/s/1LBjg0BgVMA2sVZ6aNd6Qsg
提取码:89as

在素材文件的同级目录下新建 .py文件
图片验证码破解 .py

from PIL import Image
#PIL是pillow库中的一个图片处理工具,可用于处理图片的读取,显示,修改等操作
import pytesseract
# 这个工具用于识别图片上的简单文字
# 这个工具只是链接python代和外界图片识别软件的桥梁(只是起到驱动作用),
# 我们外面需要安装一个图片识别工具


img = Image.open('./yanzhengma/cx5y.png')
print(img)
#得到 <PIL.GifImagePlugin.GifImageFile image mode=P size=55x22 at 0x28C04A28B00>
# 长为55,宽为22的图片

# 显示图片
img.show()

#读取图片中的数据
data = img.load()
print(data)
# 打印的是一个像素类型的对象 <PixelAccess object at 0x000001F07B054E10>
print(data[0,0])
# 打印的是0,0这位置的像素值

# 识别图片数上的文字
#  1) 土拍你转成灰度级图片(黑白的)
img = img.convert('L')
# 显示一下图片,可以看到图片变为黑白的了
img.show()

s = pytesseract.image_to_string(img)
print(s)
# 打印的就是验证码图片中的内容

改进,封装一个函数,用于识别验证码
identifyImg .py

from PIL import Image
import pytesseract

# 将此函数作为验证码识别工具使用

# 封装一个函数,用于识别验证码
def identify_img(filename):
	img = Image.open(filename)
	# 将图片转成灰度图片
	img = img.convert("L")
	# 将图片上的像素二值化, rgb   使黑的更黑,白的更白  没有杂质
# 即以某个临界值为基准,如果大于这个临界值就设置为255,小于就设置为0
	data = img.load()
	h,w =img.size
	for i in range(h):
		for j in range(w):
			if data[i,j]>100:
				data[i,j] = 255
			else:
				data[i,j] = 0
	img.show()
	s = pytesseract.image_to_string(img)
	print(s)
	return s


identify_img()

这个工具有些识别会发生失误

3、引用百度AI的相关识别

搜索百度AI–>进入官网首页,点击控制台–>点击文字识别–>创建应用
在这里插入图片描述
在这里插入图片描述
然后去创建应用
在这里插入图片描述
这些地方输入内容创建
在这里插入图片描述
在这里插入图片描述
创建成功后返回,查看应用
在这里插入图片描述

这里还有其他文档,感兴趣可自行查看

在这里插入图片描述

安装 pip install baidu-aip
baiduAPI .py

from aip import AipOcr


'''你的 应用id 公钥,私钥 '''
# 这些不是我的,当然使用也没关系
APP_ID = '16515296'
API_KEY = '1Z2S4XuGqdpwWytIpjpSI0ko'
SECRET_KEY = '46vh5QIeDytg8xcLKMEQAzKBLSFSE7AZ'

# 创建一个百度AI的OCR客户端,这个客户端用于 代我们和百度AI后台之间的通信
client = AipOcr(APP_ID,API_KEY,SECRET_KEY)

# 读取本地图片

fp = open('./image/jack.jpg','rb').read()
s1 = client.basicGeneral(fp)
print(s1)

fp2 = open('./image/jitang.jpg','rb').read()
s2 = client.basicGeneral(fp2)
print(s2)

#高精度识别
s3 = client.basicAccurate(fp)
print(s3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值