使用 API 求解标准版 reCAPTCHA v3

作者:solvethree阅读需 1 分钟

对于标准 reCAPTCHA v3,请在任务请求体中将 recaptchaType 设为 v3。对于 reCAPTCHA Enterprise v3,请使用 enterprise-v3;省略该字段时也默认使用此值。

本页内容

准备配置文件、主机名、操作和代理

标准 v3 仍需要工作区可用的有效站点配置文件。创建任务前,请先在控制台中设置目标站点;发送主机名和操作并不会创建配置文件。

  • site:目标主机名,例如 accounts.example.com,而不是完整的页面 URL。
  • action:目标的 reCAPTCHA 集成使用的操作。如果目标使用其他操作,请替换示例中的 login。请参阅如何查找操作。
  • proxy 或 proxyCandidates:必须且只能提供其中一个。示例使用单个代理。如果改用候选代理,列表最多接受十二个不同的 HTTP 或 HTTPS 代理 URL,且不得包含路径、查询参数或片段。

发送标准 v3 任务

将此 JSON 请求体发送至 POST https://api.solvethree.com/v1/tasks。在 Authorization 请求头中使用 Bearer 方案携带工作区 API 密钥进行身份验证。请将密钥保存在服务器上。

标准 v3 · 任务请求体
{
  "site": "accounts.example.com",
  "action": "login",
  "recaptchaType": "v3",
  "proxy": "http://user:[email protected]:8080",
  "requestId": "v3-login-001"
}

recaptchaType 应位于顶层,与 site、action 和 proxy 并列。不要为 reCAPTCHA 添加 type 或 url 字段。

将示例主机名、操作和代理替换为目标的值。每次新的逻辑求解都应使用新的 requestId。如果创建超时,请使用相同 ID 重发相同任务请求体,以恢复已有任务,而不是再创建一个。使用不同输入复用该 ID 会导致冲突。

等待就绪,然后提交令牌

  1. 1.

    先检查 HTTP 响应

    在将响应体作为任务结果读取之前,先处理非成功 HTTP 响应。检查状态并修正报告的请求错误。

  2. 2.

    持续获取任务,直至完成

    创建时默认最多等待 15 秒;请在客户端超时设置中为网络开销预留额外时间。如果状态为 pending 或 solving,请使用 GET /v1/tasks/:id 获取任务。GET 轮询默认不等待;如需长轮询,请将不超过 15000 的 waitMs 作为 URL 查询参数传入,而不是 JSON 字段。状态为 ready 或 failed 时停止轮询。对于 failed,请先检查 errorCode 和 error,再判断是否值得再次尝试。

  3. 3.

    使用就绪的解决方案

    向预期目标提交 solution.token,而不是任务 ID。使用返回的 userAgent 和 secChUa,以及求解成功时使用的代理。不要在求解与提交之间切换 IP 或替换为无关的浏览器身份。

就绪的令牌并不能证明具有某个特定的 reCAPTCHA 分数,也不能证明目标已接受。reCAPTCHA v3 会生成风险分数和操作,由目标在后端评估;请检查目标对提交令牌的请求所返回的响应。

运行您的第一个任务。

使用 $5 工作区额度开始体验。

创建工作区
使用 API 求解标准版 reCAPTCHA v3 · solvethree