在 solvethree 上完成首次 CAPTCHA 求解

作者:solvethree阅读需 1 分钟

先完成一次 reCAPTCHA Enterprise 解答,而不是直接批量处理。你需要工作区 API 密钥、有效的站点配置和自己的 HTTP 代理。然后将返回的令牌提交给目标,再扩大处理规模。

本页内容

1. 设置工作区和 API 密钥

  1. 1.

    注册并设置工作区

    从注册开始。API 密钥、站点配置和余额应使用同一个工作区。

  2. 2.

    创建密钥

    在控制台中打开“API 密钥”。选择“创建 API 密钥”,输入“密钥名称”,然后选择“创建密钥”。

  3. 3.

    保存密钥值

    复制“保存你的 API 密钥”下显示的密钥值,并妥善保存,然后再选择“我已保存此密钥”。之后无法通过“显示前缀”恢复完整密钥值。请将密钥保存在服务器上,而不是浏览器代码中。

欢迎赠送余额为 $5。如需充值,最低充值金额为 $10。reCAPTCHA 每 1,000 次解答收费 $2.00;就绪任务会计费,解答失败则退款。

2. 激活目标的站点配置

  1. 1.

    添加目标页面

    打开站点配置,选择“添加站点”。输入目标的 HTTPS 页面 URL,并选择 Enterprise v3。

  2. 2.

    设置捕获操作

    使用你所集成的操作所要求的 action。下面的请求示例使用 login,因此只有当目标的实际 action 是 login 时才使用它。每个主机名、捕获操作和 reCAPTCHA 类型组合添加一个配置。

  3. 3.

    等待配置生效

    选择“添加站点”。部分账户会先看到“充值以继续”。根据提交内容,配置可能会经历捕获、验证或审核状态。仅在配置生效后继续;捕获所需时间不作保证。如果捕获失败,请先阅读原因,再重试。

在任务中发送主机名和 action 不会创建配置。首次解答时,请在任务中使用与配置完全一致的捕获操作。有关可选字段和操作选择,请参阅站点配置设置。

3. 发送一个 Enterprise 请求

将以下请求体发送至 POST https://api.solvethree.com/v1/tasks。使用 Authorization 请求头进行身份验证,其值为 Bearer 后接你的工作区 API 密钥。

reCAPTCHA Enterprise · 请求结构
{
  "site": "accounts.example.com",
  "action": "login",
  "proxy": "http://user:[email protected]:8080",
  "requestId": "example_login_001"
}
  • 将 site 替换为目标主机名,而不是完整页面 URL。将 action 替换为首次解答所选的操作。
  • 将 proxy 替换为你的 HTTP 代理 URL 和凭据。此请求使用一个代理;不要同时发送 proxyCandidates。
  • 为此逻辑请求选择一个 requestId,并将其与提交的输入一起保存。它接受 1–64 个 ASCII 字母、数字、下划线或连字符。
  • 不要包含 type 和 url。省略 recaptchaType 时,请求默认使用 Enterprise v3。

完整的 Python 实现请参阅在 Python 中使用 reCAPTCHA Enterprise。此处的请求展示了你需要先准备的值。

4. 持续查询任务,直到完成

保存创建时返回的任务 ID。使用 GET https://api.solvethree.com/v1/tasks/:id 查询任务,将 :id 替换为该 ID,并使用相同的 Bearer 身份验证。

  • 在将响应体作为成功的任务响应读取之前,先检查是否收到非成功的 HTTP 响应。
  • 当状态为 pending 或 solving 时,继续轮询。这两种状态都不包含可用的解答。
  • 当状态为 ready 时,停止轮询并读取 solution。
  • 当状态为 failed 时,停止轮询并检查 errorCode 和 error。失败的解答会退款。

就绪响应的结构如下。这些令牌和浏览器身份值是占位内容,并非实际可用的解答。

就绪响应示例 · 占位凭据
{
  "id": "example-task",
  "status": "ready",
  "solution": {
    "token": "EXAMPLE_TOKEN",
    "userAgent": "EXAMPLE_USER_AGENT",
    "secChUa": "EXAMPLE_CLIENT_HINTS"
  }
}

5. 使用相同的代理和浏览器身份提交令牌

  1. 1.

    发送令牌,而不是任务 ID

    将 solution.token 放在预期目标接收 reCAPTCHA 令牌的位置。检查发出的请求,确保发送的不是任务 ID 或旧令牌。

  2. 2.

    使用返回的浏览器身份

    在目标请求中使用 solution.userAgent 和 solution.secChUa,并使用本次解答所提供的同一代理。不要将它们与无关的浏览器身份混用,也不要将令牌提交到不同的目标 URL。

  3. 3.

    检查目标的响应

    确认目标已接受预期操作。任务就绪表示 solvethree 已生成解答,并不保证目标会接受你随后发出的请求。

开始批量处理前,先让目标接受这一次请求。如果请求被拒绝,请在购买更多解答之前检查提交的令牌、浏览器身份、代理和目标 URL。

运行您的第一个任务。

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

创建工作区
在 solvethree 上完成首次 CAPTCHA 求解 · solvethree