当前位置: 首页 > news >正文

通用轨迹验证码识别代码

一、简介

现在各个网站反爬措施越来越丰富。反爬方式也越来越难,轨迹验证码就是防御的最好措施,下面最近最近收集到不同网站轨迹验证码的图片样例。

轨迹的也从最开始的简单,变得越来越复杂。为了增加难度,轨迹也变得越来越不清晰,轨迹的颜色也和背景图融为了一体,可能连人眼都很难去区分。

这张图片轨迹还比较简单,轨迹比较直,没有曲线,而且轨迹和背景颜色差别较大,人眼容易区分。

这个网站的轨迹验证码难度就比较大,首先轨迹的颜色比较淡,而且轨迹都是曲线。甚至还有船行驶的轨迹作为干扰,很容易让模型把船行驶的轨迹错误识别为需要鼠标滑动的轨迹。

这个网站的轨迹变得更加不清晰,颜色都是和雾气一样弥散的,轨迹没有明显的分界线。而且比较浅的颜色也容易和背景元素融为一体,甚至行程遮挡关系。只能说是难上加难。

二、识别代码

为了解决越来越多的轨迹识别问题,我们收集了大量图片,标记了大量数据。我们训练出了一个比较完美的模型,几乎可以通用类似的所有轨迹验证码

下面是识别的代码,代码的使用也很简单,只需要上传上面的轨迹图片就行,最后会得到滑动的轨迹。

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\84.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":"onNYnzzAWPO8E0bPDmJv", # 验证码类型 "verify_idf_id":"84", # 样例图片 "img_base64":img1_base64, } import json print(json.dumps(data)) header = {"Content-Type": "application/json"} # 发送请求调用接口 response = requests.post(url=url, json=data, headers=header) # 获取响应数据,识别结果 print(response.text) print("耗时:", datetime.datetime.now() - t1)

识别后的图片可视化

想了解更多验证码识别,免费测试效果请访问:https://bq1gpmr8.xiaomy.net/tool/verifyCodeHomePage2/?_=1765759147337

http://www.jsqmd.com/news/93989/

相关文章:

  • 中小企业如何选择靠谱的软文发稿平台:精准投放与高效传播指南
  • 300M参数撬动千亿市场:EmbeddingGemma开启边缘AI普惠时代
  • Dify智能体平台可视化界面连接Qwen3-VL-8B教程
  • Bun:下一代 JavaScript 运行时与工具链
  • AI搜索排名GEO优化服务商行业排行榜
  • 2025年12月四川竹木地板厂家推荐:品质服务综合实力排行榜单深度对比分析 - 十大品牌推荐
  • 二课管理「痛点 - 解决方案」全拆解:接龙管家凭何突围?
  • 好写作AI:赶走“写作困难症”,让你和论文焦虑说拜拜![特殊字符]
  • 适合一个人干的外卖创业项目
  • 局域网部署,如何用飞函视频会议打造企业保密空间
  • AutoGPT支持Apple Silicon芯片加速了吗?M系列Mac实测
  • AutoGPT执行复杂任务时的资源消耗分析(CPU/GPU/内存)
  • 夸克限速教你如何解决 - 在线解析工具
  • 英伟达B200:AI算力革命的新纪元引擎
  • 医疗健康领域私有化部署Qwen3-14B的安全考量
  • 基于Django的高校食堂智能预约管理系统,附源码!
  • 从工程资产到即时工具:AI 原生软件开发与氛围编程的范式分化
  • Ollama模型量化技术对PyTorch-GPU内存占用的影响
  • 口碑是营销出来的?格行真实用户实测:网速和售后真有那么好? “流量靠猜”“网速成迷”3 大场景实测给答案
  • 别再找盗版许可证了,教你如何获取和安装官方免费的VMware WorkStation
  • 从软件到智能体:AI Agent 作为软件发展的最新阶段
  • 2025年GEO优化专业评测,杭州爱搜索人工智能位列榜首
  • 代码实现 基于 DeepEval 框架实现工单摘要质量的批量自动评估
  • 2025首届长三角多动症医学论坛暨公益节在合肥天使儿童医院隆重举行
  • 云服务器邂逅英伟达B200:AI算力革命的黄金搭档
  • 【Java毕设源码分享】基于springboot+vue的疫情防控自动售货机系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 家校沟通不用“猜”,小二查成绩让每分进步都清晰可见
  • LobeChat提示词模板管理系统使用指南
  • 监控运维面试题.运维工程师面试题
  • 【vue2form表单中的动态表单校验】