文献资料菜单

HCaptchaTask:通过代理服务器破解 HCaptcha 谜题

hCaptcha 开发人员将其人机验证称为“Recaptcha 的短期替代品”。我们尝试在我们的 API 中创建同样的任务,以使任务属性与 RecaptchaV2Task 中的任务属性完全相同,除了“type”属性。

重要信息:对于 hCaptcha,似乎从一个 IP 地址发出的任务的解决次数有限,大约每 12 小时解决 3 项任务。通过您的代理服务器制定破解流程时要将这一点考虑在内。

Recaptcha V2 谜题示例

任务对象

属性 类型 必须使用 用途
type 字符串 HCaptchaTask
websiteURL 字符串 目标网页的地址。可位于网站中的任何位置,甚至可位于会员区中。我们的工作人员不会转到该位置,而是会模拟其访问操作。
websiteKey 字符串 hCaptcha 网站密钥
proxyType 字符串 代理服务器类型
http - 普通的 http/https 代理服务器
socks4 - socks4 代理服务器
socks5 - socks5 代理服务器
proxyAddress 字符串 ipv4/ipv6 代理服务器 IP 地址。禁止使用主机名或本地网络中的 IP 地址。
proxyPort 整数 代理服务器端口
proxyLogin 字符串 用于需要授权(基本授权)的代理服务器的登录名
proxyPassword 字符串 代理服务器密码
userAgent 字符串 用于仿真的浏览器用户代理程序。必须使用最新浏览器的签名,否则 Google 会要求“更新浏览器”。

请求示例

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY",
    "task":
        {
            "type":"HCaptchaTask",
            "websiteURL":"https://hcaptcha.com/",
            "websiteKey":"00000000-0000-0000-0000-000000000000",
            "proxyType":"http",
            "proxyAddress":"8.8.8.8",
            "proxyPort":8080,
            "proxyLogin":"proxyLoginHere",
            "proxyPassword":"proxyPasswordHere",
            "userAgent":"MODERN_USER_AGENT_HERE"
        }
}' https://api.anti-captcha.com/createTask
        

回应示例

JSON 没有错误
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON 有错误
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

重获破解结果

用方法 getTaskResult 请求提供破解结果。首次提出请求之前,要给工作人员一些时间,例如 5 秒钟。如果工作人员还在忙,则过 3 秒再重试。

任务破解结果对象

属性 类型 用途
gRecaptchaResponse 字符串 与目标网站中的提交窗体发生相互作用所需的标记字符串。

回应示例

JSON 没有错误
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}