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。如有任何问题,请随时联系我们的技术支持团队。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1542844.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

使用思科搭建企业网规划训练,让网络全部互通,使用规则提高工作效率。

1. 企业背景: 某企业分为销售部、行政部、人力资源部、财务部、业务部、接待中心等主要六个部门;配置网管中心,允许网络管理员登录企业交换机和路由器对企业网络进行管理;配置服务器集群,设置FTP、DNS、WEB服务器&am…

泛微开发修炼之旅--44用友U9与ecology对接方案及源码

文章链接:44用友U9与ecology对接方案及源码

蓝桥杯算法之暴力

暴力 1.十进制数转换成罗马数字 2.判断给出的罗马数字是否正确 小知识 %(模除): % 符号用作模除(或取模)运算符。模除运算是一种数学运算,它返回两个数相除的余数。 具体来说,如果 a 和 b 是…

分布式系统的CAP原理

CAP 理论的起源 CAP 理论起源于 2000 年,由加州大学伯克利分校的 Eric Brewer 教授在分布式计算原理研讨会(PODC)上提出,因此 CAP 定理又被称作布鲁尔定理(Brewer’s Theorem)。2002 年,麻省理…

低代码开发平台:高效开发新体验

在数字化转型的浪潮中,企业对软件开发的需求日益加剧,对开发效率和响应市场变化的速度有着前所未有的要求。传统的软件开发方法由于其复杂性和耗时性,已经逐渐难以满足这种快速变化的需求。低代码平台作为一种新兴的开发工具,因其…

C语言理解 —— printf 格式化输出

目 录 printf 函数一、短整型输出二、长整型输出三、浮点型输出四、字符型输出五、字符串输出六、注意问题 printf 函数 在软件开发过程中,通常需要打印一些字符串信息,或把一些变量值输出到上位机显示。打印函数printf是最常用的。 一般格式&#xff…

STM32篇:通用输入输出端口GPIO

一.什么是GPIO? 1.定义 GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚STM32芯片的GPIO引脚与 外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。 简单来说我们可以控制GPIO引脚的电平变化,达到我们的各种目的…

文献阅读(220)MRCN

题目:MRCN: Throughput-Oriented Multicast Routing for Customized Network-on-Chips时间:2023期刊:TPDS研究机构:韩国成均馆大学 这篇论文探讨的问题是多播死锁问题,下图中Packet A分成两条路径,但在rou…

伊丽莎白·赫莉为杂志拍摄一组素颜写真,庆祝自己荣膺全球最性感女人第一名

语录:女性应该做任何她们想做的事,批评她们的人都见鬼去吧。 伊丽莎白赫莉为《Maxim》杂志拍摄一组素颜写真,庆祝自己荣膺全球最性感女人第一名 伊丽莎白赫莉 (Elizabeth Hurley) 实在是太惊艳了,如今,《马克西姆》杂…

对话Chat和续写Completion的区别

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 对话Chat 对话Chat功能主要适用于模拟人类对话的场景,例如智能客服、智能问答和聊天机器人等。它允许用户与模型进行多轮次交互,从而模拟真实的对话…

Python中的数据可视化:从基础图表到高级可视化

数据可视化是数据分析和科学计算中不可或缺的一部分。它通过图形化的方式呈现数据,使复杂的统计信息变得直观易懂。Python提供了多种强大的库来支持数据可视化,如Matplotlib、Seaborn、Plotly等。本文将从基础图表入手,逐步介绍如何使用这些库…

mybatis 配置文件完成增删改查(一):直接查询所有信息

文章目录 编写三步走查询所有编写接口方法编写sql语句执行方法,测试结果数据库字段名和实体类变量名不一致:ResultMap数据库字段名和实体类变量名不一致:方法二 编写三步走 编写接口方法:Mapper接口 参数有无 结果类型编写sql语句…

分布式环境中解决主从延时的一些思路

目录标题 MySQL主从复制复习为什么要做主从复制?主从复制的原理主从延迟的原因? 解决思路1. 读写分离与延迟容忍2. 异步复制优化3. 缓存机制(常用)4. 最终一致性方案(常用)5. 主从切换与自动故障恢复&#…

多无人机通信(多机通信)+配置ssh服务

目录 多机通信 设备 主从机通信设置 配置从机 配置主机 测试 正式启用 MAVROS通信 多机通信 多机通信是实现机器人编队的基础,通过网络搭建通信链路。我们这里用中心节点网络通信,所有数据需有经过中心节点,所以,中心节点…

Codeforces Round 974 (Div. 3)D题解析

前三道太水了,第三道一眼二分,就是需要注意要超过一半人就行,我因为检查了好久 D. Robert Hood and Mrs Hood 抱歉,我是蒟蒻,我看到区间问题就想到了线段树,我们只需要用线段树去维护每个点药经历多少任务…

6.linux文件存储

目录 一.文件系流 1. 简介 2. 示例 二.文件链接 1.符号链接 2.硬链接 三.RAID 1.简介和类型 2.不同场景RAID的使用 3.RAID示例 一.文件系流 问题1:文件是如何准确放到磁盘的某个位置的? 问题2:文件是如何在磁盘(渺茫的…

re题(40)BUUCTF-[ACTF新生赛2020]Oruga

BUUCTF在线评测 (buuoj.cn) 查壳,64位elf文件,ida打开,定位入口函数 进入main里面,再看看sub_78A 猜测是个迷宫,看看byte_201020里是不是地图 _BOOL8 __fastcall sub_78A(__int64 a1) {int v2; // [rspCh] [rbp-Ch]in…

【有啥问啥】深度剖析:大模型AI时代下的推理路径创新应用方法论

深度剖析:大模型AI时代下的推理路径创新应用方法论 随着大规模预训练模型(Large Pretrained Models, LPMs)和生成式人工智能的迅速发展,AI 在多领域的推理能力大幅提升,尤其是在自然语言处理、计算机视觉和自动决策领…

开启争对目标检测的100类数据集-信息收集

DataBall 助力快速掌握数据集的信息和使用方式。 请关注我们的专栏:DataBall数据集合 (计算机视觉)_DataBall的博客-CSDN博客 感谢大家! 争对数据的种类希望获得大家建议进行收集构建,符合市场大众的需求,欢…

【C++篇】引领C++模板初体验:泛型编程的力量与妙用

文章目录 C模板编程前言第一章: 初始模板与函数模版1.1 什么是泛型编程?1.1.1 为什么要有泛型编程?1.1.1 泛型编程的优势 1.2 函数模板的基础1.2.1 什么是函数模板?1.2.2 函数模板的定义格式1.2.3 示例:通用的交换函数输出示例&am…