欢迎光临
我们一直在努力

DeepSeek验证码识别

 一、简介

如图所示,就DeepSeek的空间语义点选验证码,会给你一个简单的验证码描述文章,需要用户根据语义的理解,在背景大图中点击对应的目标形状,点击正常才能通过。这样的验证码对于真人来说确实非常简单,只需要简单的思考,凭着感觉就能点对。但是如果要使用机器来自动完成这个过程,就非常复杂了。

二、识别前准备

识别这个验证码需要输入两个东西:背景图片、描述的文本

1、背景图片

背景图片最好使用原图。原图的意思是通过验证码图片链接下载的图片,这样得到的图片都是标准大小,质量也是最高的。如下图所示

如果实在不知道怎么获取原图,这里使用截图也是可以的。

2、描述的文本

就是页面上显示的【点击图中最小的蓝色长方体】、【点击图中最小的绿色圆锥】等这样的描述。这些都是文本,不用识别,直接在网页的html中就可以直接获取得到。

三、识别代码

准备好上面的内容后就可以使用下面代码进行识别了。识别正确率可以达到几乎100%的正确率。

import base64
import requests
import datetime
from io import BytesIO
from PIL import Image

t1 = datetime.datetime.now()

#PIL图片保存为base64编码
def PIL_base64(img, coding='utf-8'):
img_format = img.format
if img_format == None:
img_format = 'JPEG'

format_str = 'JPEG'
if 'png' == img_format.lower():
format_str = 'PNG'
if 'gif' == img_format.lower():
format_str = 'gif'

if img.mode == "P":
img = img.convert('RGB')
if img.mode == "RGBA":
format_str = 'PNG'
img_format = 'PNG'

output_buffer = BytesIO()
# img.save(output_buffer, format=format_str)
img.save(output_buffer, quality=100, format=format_str)
byte_data = output_buffer.getvalue()
base64_str = 'data:image/' + img_format.lower() + ';base64,' + base64.b64encode(byte_data).decode(coding)
# base64_str = base64.b64encode(byte_data).decode(coding)

return base64_str

# 加载图片
img1 = Image.open(r'E:\\Python\\lixin_project\\OpenAPI接口测试\\test_img\\95-1.jpg')
# 图片转base64
img1_base64 = PIL_base64(img1)

# 验证码识别接口
# 可以根据自己网络情况选择不同接口
# http://bq1gpmr8.xiaomy.net(电信)
# http://220.167.181.200:9009(移动、电信、联通)

# 验证码识别接口
url = "http://220.167.181.200:9009/openapi/verify_code_identify/"
data = {
# 用户的key
"key":"vVlAIZWYS6RSVDbwOt1d",
# 验证码类型
"verify_idf_id":"95",
# 样例图片
"img_base64":img1_base64,
# 文本描述
"words": "点击图中最小的绿色圆锥",
}

header = {"Content-Type": "application/json"}

# 发送请求调用接口
response = requests.post(url=url, json=data, headers=header)

# 获取响应数据,识别结果
print(response.text)
print("耗时:", datetime.datetime.now() – t1)

想了解更多验证码识别,请访问:得塔云

赞(0)
未经允许不得转载:171主机测评 » DeepSeek验证码识别
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址