news 2026/4/16 16:23:57

国家税务总局中文点选验证码识别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
国家税务总局中文点选验证码识别

一、简介

2026年元旦节,国家税务总局中文点选验证码居然又更新了。这次更新对识别还是有很大的影响。

1、文字的位置变得随机

2、文字的旋转角度变得更乱

让识别变得更加困难。我们在元旦节期间快速反应,迅速的采集最新的图片,完成了数据标记与训练。最终正确率达到了99%。

二、识别说明

识别这个验证码需要两张原图

1、点击区大图

2、点击顺序的小图

三、识别代码

下面的代码是样例代码,需要制定两张图片的路径,img1是点击区大图,img2是点击顺序小图。图片顺序不能传错。

import base64 import requests import datetime from io import BytesIO from PIL import Image, ImageDraw, ImageFont 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\85-1.jpg') # 图片转base64 img1_base64 = PIL_base64(img1) img2 = Image.open(r'E:\Python\lixin_project\OpenAPI接口测试\test_img\85-2.png') # 图片转base64 img2_base64 = PIL_base64(img2) 验证码识别接口 可以根据自己网络情况选择不同接口 http://bq1gpmr8.xiaomy.net(电信) http://220.167.181.200:9009(移动、电信、联通) # 验证码识别接口 url = "http://220.167.181.200:9009/openapi/verify_code_identify/" data = { # 用户的key "key": "qaXZNkpHniKPxw4ZYJj0", # 验证码类型 "verify_idf_id": "85", # 点击区大图 "img1": img1_base64, # 点击顺序小图 "img2": img2_base64, } header = {"Content-Type": "application/json"} # 发送请求调用接口 response = requests.post(url=url, json=data, headers=header) # 获取响应数据,识别结果 print(response.text) print("耗时:", datetime.datetime.now() - t1) # 标记识别结果 draw = ImageDraw.Draw(img1) # 字体设置 font_type = "./msyhl.ttc" font_size = 20 font = ImageFont.truetype(font_type, font_size) # 获取结果列表 y = response.json()['data']['res_str'] point_list = eval(y) # 标记点击序号 for i, point in enumerate(point_list): draw.ellipse((point[0] - 15, point[1] - 15,point[0] + 15, point[1] + 15), fill=(255, 0, 0)) draw.text((point[0] - 5, point[1] - 15), str(i + 1), fill=(255, 255, 255), font=font) img1.show()

运行上面的代码会看到下面的点击效果

想了解更多验证码识别,请访问:http://bq1gpmr8.xiaomy.net/tool/verifyCodeHomePage2/?_=1767453173457

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:03:05

huggingface镜像网站推荐,加快IndexTTS2模型拉取速度

Hugging Face镜像加速实战:让IndexTTS2模型秒级拉取 在本地部署一个语音合成系统时,最让人崩溃的不是代码报错,也不是环境配置失败——而是眼睁睁看着模型下载进度条卡在“1%”整整一上午。尤其当你面对的是像 IndexTTS2 这样动辄几个GB的深…

作者头像 李华
网站建设 2026/4/16 14:21:33

FastSpeech2与IndexTTS2架构对比:谁更适合中文情感语音合成?

FastSpeech2与IndexTTS2架构对比:谁更适合中文情感语音合成? 在智能语音助手、虚拟主播和有声内容创作日益普及的今天,用户早已不满足于“能听清”的机械朗读。他们期待的是有温度、有情绪、像真人一样的声音表达——尤其是在中文语境下&…

作者头像 李华
网站建设 2026/4/16 3:29:57

EverythingToolbar终极指南:Windows任务栏高效文件搜索革命

EverythingToolbar作为一款革命性的Windows任务栏搜索增强工具,彻底改变了传统文件查找方式。它巧妙地将Everything搜索引擎的强大功能直接嵌入到Windows任务栏中,让用户无需打开任何额外窗口即可实现秒级文件定位,为Windows效率提升爱好者提…

作者头像 李华
网站建设 2026/4/16 2:02:14

3分钟极速配置:让网络访问飞起来的智能导航工具

还在为访问GitHub时页面加载缓慢而烦恼吗?当您满怀期待地想要下载Steam游戏,却只能看着进度条缓慢爬行?今天我要向您介绍一个能够彻底改变网络体验的神奇工具——SteamHostSync,这个智能导航助手将为您打开网络加速的新世界。 【免…

作者头像 李华
网站建设 2026/4/16 15:09:08

颠覆传统:在线GPX编辑器如何重新定义轨迹数据处理

颠覆传统:在线GPX编辑器如何重新定义轨迹数据处理 【免费下载链接】gpxstudio.github.io The online GPX file editor 项目地址: https://gitcode.com/gh_mirrors/gp/gpxstudio.github.io 你是否曾经面对过这样的困境:精心记录的户外轨迹因为GPS设…

作者头像 李华
网站建设 2026/4/16 15:49:17

为什么你的微博内容需要立即备份?3步完成PDF导出完整指南

为什么你的微博内容需要立即备份?3步完成PDF导出完整指南 【免费下载链接】Speechless 把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 在数字时代,你的每一…

作者头像 李华