本文将介绍一种 hCaptcha 图像识别 API 对接说明,它可以通过用户输入识别的内容和 hCaptcha验证码图像,最后返回需要点击的小图像的坐标,完成验证。
申请流程
要使用 API,需要先到 hCaptcha 图像识别 API platform.acedata.cloud/documents/c… 对应页面申请对应的服务,进入页面之后,点击「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」按钮即可进行测试,如上图所示,这里我们就得到了如下结果:
1{ 2 "solution": { 3 "label": "Please click on the UNIQUE object among the others", 4 "box": [ 5 "360", 6 "276" 7 ], 8 "confidences": 0.6354503631591797 9 } 10} 11
返回结果一共有多个字段,介绍如下:
solution,此次 hCaptcha验证码图像 任务处理后验证结果。label,hCaptcha验证码图像所识别的内容。box,hCaptcha验证码图像识别结果的位置信息,它是由图像的坐标信息构成。confidences,hCaptcha验证码图像识别后满足识别内容的的置信度。
可以看到我们得到了处理 hCaptcha验证码图像 的验证结果,我们只需要根据结果中 box 的位置坐标信息对该验证码图像进行模拟点击该区域便可通过验证。
下面将介绍如何通过结果的 box 的位置信息如何来点击,首先是针对上传的验证码图片进行建立直角坐标系,其中中心原点在图像的左下角,360是对应的横坐标,276是对应的纵坐标,我们只需要通过模拟点击验证码对应的坐标进行点击即可,具体的图像信息如下图所示:

另外如果想生成对应的对接代码,可以直接复制生成,例如 CURL 的代码如下:
1curl -X POST 'https://api.acedata.cloud/captcha/recognition/hcaptcha' \ 2-H 'accept: application/json' \ 3-H 'authorization: Bearer {token}' \ 4-H 'content-type: application/json' \ 5-d '{ 6 "question": "Please click on the UNIQUE object among the others.", 7 "queries": ["iVBORw0KGgoAAAANSU.....eY+85KVlzKHav28uq/WLVhL2kHUlFMKUcZbL31S8bpd0pEPKxNllXAE2wgu3uEfj+BfAzOGelsQNFAAAAAElFTkSuQmCC"] 8}' 9}' 10
Python 的对接代码如下:
1import requests 2 3url = "https://api.acedata.cloud/captcha/recognition/hcaptcha" 4 5headers = { 6 "accept": "application/json", 7 "authorization": "Bearer {token}", 8 "content-type": "application/json" 9} 10 11payload = { 12 "question": "Please click on the UNIQUE object among the others.", 13 "queries": ["iVBORw0KGgoAAAANSU.....eY+85KVlzKHav28uq/WLVhL2kHUlFMKUcZbL31S8bpd0pEPKxNllXAE2wgu3uEfj+BfAzOGelsQNFAAAAAElFTkSuQmCC"] 14} 15 16response = requests.post(url, json=payload, headers=headers) 17print(response.text) 18
错误处理
在调用 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.
错误响应示例
1{ 2 "success": false, 3 "error": { 4 "code": "api_error", 5 "message": "fetch failed" 6 }, 7 "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89" 8} 9
结论
通过本文档,您已经了解了如何使用 hCaptcha 图像识别 API 让用户输入识别的内容和 hCaptcha验证码图像,最后返回需要点击的小图像的坐标,完成验证。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。
《hCaptcha 验证码图像识别 API 对接教程》 是转载文章,点击查看原文。