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

hCaptcha 图像识别 API 对接说明

本文将介绍一种 hCaptcha 图像识别 API 对接说明,它可以通过用户输入识别的内容和 hCaptcha验证码图像,最后返回需要点击的小图像的坐标,完成验证。

接下来介绍下 hCaptcha 图像识别 API 的对接说明。

申请流程

要使用 API,需要先到 hCaptcha 图像识别 API 对应页面申请对应的服务,进入页面之后,点击「Acquire」按钮,如图所示:

如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。

在首次申请时会有免费额度赠送,可以免费使用该 API。

基本使用

首先先了解下基本的使用方式,就是输入需要处理 hCaptcha验证码图像,便可获得处理后的结果,首先需要简单地传递一个 queries 字段,这个就是具体hCaptcha验证码图像,我们需要去一个有hCaptcha验证码网站中截取这个验证码图片,示例网站链接为: https://democaptcha.com/demo-form-eng/hcaptcha.html,点击复选框即可显示具体的完整验证码图片,如下图所示:

其中queries 字段是上文中验证码图像的截图,图片大小建议不要超过100kb,还需要对上面图片红色箭头指向的区域进行截图,并且还需要你自行压缩图片大小,并且还需要将它转换为Base64编码,如下图所示:

同时还需要输入跟验证码图像相关的识别内容参数 question,这个支持中英文翻译,可以直接传相关的识别内容,由上文网页图像中黄色箭头执行的内容可以看出 question 输入的应为 Please click on the UNIQUE object among the others.。具体的内容如下:

可以看到这里我们设置了 Request Headers,包括:

  • accept:想要接收怎样格式的响应结果,这里填写为 application/json,即 JSON 格式。

  • authorization:调用 API 的密钥,申请之后可以直接下拉选择。

另外设置了 Request Body,包括:

  • queries:Base64编码的验证码图像列表。

  • question:验证码图像相关的识别内容参数,支持直接输入中英文。

选择之后,可以发现右侧也生成了对应代码,如图所示:

点击「Try」按钮即可进行测试,如上图所示,这里我们就得到了如下结果:

{"solution": {"label": "Please click on the UNIQUE object among the others","box": ["360","276"],"confidences": 0.6354503631591797}
}

返回结果一共有多个字段,介绍如下:

  • solution,此次 hCaptcha验证码图像 任务处理后验证结果。

    • label,hCaptcha验证码图像所识别的内容。

    • box,hCaptcha验证码图像识别结果的位置信息,它是由图像的坐标信息构成。

    • confidences,hCaptcha验证码图像识别后满足识别内容的的置信度。

可以看到我们得到了处理 hCaptcha验证码图像 的验证结果,我们只需要根据结果中 box 的位置坐标信息对该验证码图像进行模拟点击该区域便可通过验证。

下面将介绍如何通过结果的 box 的位置信息如何来点击,首先是针对上传的验证码图片进行建立直角坐标系,其中中心原点在图像的左下角,360是对应的横坐标,276是对应的纵坐标,我们只需要通过模拟点击验证码对应的坐标进行点击即可,具体的图像信息如下图所示:

另外如果想生成对应的对接代码,可以直接复制生成,例如 CURL 的代码如下:

curl -X POST 'https://api.acedata.cloud/captcha/recognition/hcaptcha' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{"question": "Please click on the UNIQUE object among the others.","queries": ["iVBORw0KGgoAAAANSU.....eY+85KVlzKHav28uq/WLVhL2kHUlFMKUcZbL31S8bpd0pEPKxNllXAE2wgu3uEfj+BfAzOGelsQNFAAAAAElFTkSuQmCC"]
}'
}'

Python 的对接代码如下:

import requests
​
url = "https://api.acedata.cloud/captcha/recognition/hcaptcha"
​
headers = {"accept": "application/json","authorization": "Bearer {token}","content-type": "application/json"
}
​
payload = {"question": "Please click on the UNIQUE object among the others.","queries": ["iVBORw0KGgoAAAANSU.....eY+85KVlzKHav28uq/WLVhL2kHUlFMKUcZbL31S8bpd0pEPKxNllXAE2wgu3uEfj+BfAzOGelsQNFAAAAAElFTkSuQmCC"]
}
​
response = requests.post(url, json=payload, headers=headers)
print(response.text)

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:

  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.

  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.

  • 401 invalid_token:Unauthorized, invalid or missing authorization token.

  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.

  • 500 api_error:Internal server error, something went wrong on the server.

错误响应示例

{"success": false,"error": {"code": "api_error","message": "fetch failed"},"trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

结论

通过本文档,您已经了解了如何使用 hCaptcha 图像识别 API 让用户输入识别的内容和 hCaptcha验证码图像,最后返回需要点击的小图像的坐标,完成验证。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 『功能项目』QFrameWorkBug关联Slot(插槽)【67】
  • 一种新的电子邮件攻击方式:AiTM
  • 发展低空经济,对地理信息技术提出了哪些要求
  • Unreal Engine 5 C++: Asset Batch Duplication插件编写02
  • 5.《DevOps》系列K8S部署CICD流水线之K8S通过Yaml部署GitLab
  • VSCode好用的插件推荐
  • 错误码与错误提示设计
  • YOLOv9改进,YOLOv9主干网络为FasterNet(全网独发手把手教学,助力涨点)
  • AUTOSAR_EXP_ARAComAPI的5章笔记(7)
  • 如何创建标准操作规程(SOP)[+模板]
  • 从规范到实现解读Windows平台如何播放RTSP流
  • Redisson实现分布式锁(看门狗机制)
  • 《深度学习》—— 卷积神经网络(CNN)的简单介绍和工作原理
  • docker在基础镜像上,比如rockylinux,如何配置yum仓库
  • armbian23.11改了SSH端口号,但不生效?可尝试禁用 systemd socket activation
  • hexo+github搭建个人博客
  • 【前端学习】-粗谈选择器
  • co.js - 让异步代码同步化
  • CSS实用技巧
  • Github访问慢解决办法
  • k8s如何管理Pod
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Swoft 源码剖析 - 代码自动更新机制
  • vue 配置sass、scss全局变量
  • Vue组件定义
  • 解析带emoji和链接的聊天系统消息
  • 日剧·日综资源集合(建议收藏)
  • 如何进阶一名有竞争力的程序员?
  • 微信开放平台全网发布【失败】的几点排查方法
  • 我看到的前端
  • 硬币翻转问题,区间操作
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • kubernetes资源对象--ingress
  • ​ubuntu下安装kvm虚拟机
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)h264中avc和flv数据的解析
  • (转)Linux下编译安装log4cxx
  • (转载)hibernate缓存
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET 表达式计算:Expression Evaluator
  • .net 获取某一天 在当月是 第几周 函数
  • .NET/C# 的字符串暂存池
  • .net对接阿里云CSB服务
  • .Net组件程序设计之线程、并发管理(一)
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @Autowired和@Resource的区别
  • @media screen 针对不同移动设备
  • @SuppressWarnings注解
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [240621] Anthropic 发布了 Claude 3.5 Sonnet AI 助手 | Socket.IO 拒绝服务漏洞