Уведомление об использовании файлов cookie

Этот сайт использует cookie. Файлы cookie запоминают вас, поэтому мы можем предоставить вам персонализированные услуги. Подробнее.

Логотип «GitHub»

hCaptcha

hCaptcha

Основанный на токенах метод автоматического решения hCaptcha. Метод очень похож на reCAPTCHA V2.
Полученный токен может быть отправлен на целевой веб-сайт внутри поля формы h-captcha-response или передан функции обратного вызова. Мы рекомендуем использовать значение userAgent которое приходит вместе с токеном.

Типы задач

  • HCaptchaTaskProxyless - мы используем собственный пул прокси-серверов для решения капч
  • HCaptchaTask - мы используем переданный вами прокси

Спецификация для типа задачи HCaptchaTaskProxyless

Свойство Тип Обязателен Описание
type Строка Да Тип задачи:
HCaptchaTaskProxyless
HCaptchaTask
websiteURL Строка Да Полный URL-адрес целевой веб-страницы, на которую загружается капча. Мы не открываем страницу, это не проблема, если страница доступна только для авторизованных пользователей
websiteKey Строка Да hCaptcha sitekey. Свойство data-sitekey для hCaptcha, которое можно найти внутри элемента div hCaptcha или внутри параметра k запросов к hCaptcha API.
isInvisible Логический Нет Укажите значение true для невидимой версии hCaptcha. Невидимая версия hCaptcha, это когда вы не видите флажок, но капча появляется на странице. В основном используется вместе с функцией обратного вызова.
enterprisePayload Объект Нет Объект, содержащий дополнительные параметры, такие как: rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost.
Пример использования: "enterprisePayload":{"rqdata":"test_string"}

Спецификация для типа задачи HCaptchaTask

HCaptchaTask расширяет HCaptchaTaskProxyless, добавляя набор параметров, связанных с прокси, перечисленных ниже.

Свойство Тип Обязателен Описание
proxyType Строка Да Тип прокси:
http
socks4
socks5
proxyAddress Строка Да IP-адрес прокси-сервера или имя хоста
proxyPort Целое число Да Порт прокси-сервера
proxyLogin Строка Нет Логин используемый для аунтефикации на прокси-сервере
proxyPassword Строка Нет Пароль используемый для аунтефикации на прокси-сервере

Примеры запросов

Метод: createTask
Конечная точка API: https://api.2captcha.com/createTask

Пример запроса HCaptchaTaskProxyless

{
    "clientKey":"YOUR_API_KEY",
    "task": {
        "type":"HCaptchaTaskProxyless",
        "websiteURL":"https://2captcha.com/demo/hcaptcha",
        "websiteKey":"f7de0da3-3303-44e8-ab48-fa32ff8ccc7b"
    },
    "softId": "3898",
    "callbackUrl": "https://1.2.3.4/webhooks/captcha"
}

Пример запроса HCaptchaTask

{
    "clientKey":"YOUR_API_KEY",
    "task": {
        "type":"HCaptchaTask",
        "websiteURL":"https://2captcha.com/demo/hcaptcha",
        "websiteKey":"f7de0da3-3303-44e8-ab48-fa32ff8ccc7b",
        "isInvisible": false,
        "enterprisePayload" : {
            "rqdata" :"rqDataValue"
        }, 
        "proxyType":"http",
        "proxyAddress":"1.2.3.4",
        "proxyPort":"8080",
        "proxyLogin":"user23",
        "proxyPassword":"p4$w0rd"
    },
    "softId": "3898",
    "callbackUrl": "https://1.2.3.4/webhooks/captcha"
}

Пример ответа

{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "token": "P1_eyJ0eXAiOiJKV...1LDq89KyJ5A",
        "respKey": "E0_eyJ0eXAiOiJK...y2w5_YbP8PGuJBBo",
        "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.5614.0 Safari/537.36",
        "gRecaptchaResponse": "P1_eyJ0eXAiOiJKV...1LDq89KyJ5A"
    },
    "cost": "0.00299",
    "ip": "1.2.3.4",
    "createTime": 1692863536,
    "endTime": 1692863556,
    "solveCount": 1
}

Примеры кода

// https://github.com/2captcha/2captcha-php

require(__DIR__ . '/../src/autoloader.php');

$solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');

try {
    $result = $solver->hcaptcha([
        'sitekey' => 'f7de0da3-3303-44e8-ab48-fa32ff8ccc7b',
        'url'     => 'https://2captcha.com/demo/hcaptcha',
    ]);
} catch (\Exception $e) {
    die($e->getMessage());
}

die('Captcha solved: ' . $result->code);
# https://github.com/2captcha/2captcha-python

import sys
import os

sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

from twocaptcha import TwoCaptcha

api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')

solver = TwoCaptcha(api_key)

try:
    result = solver.hcaptcha(
        sitekey='f7de0da3-3303-44e8-ab48-fa32ff8ccc7b',
        url='https://2captcha.com/demo/hcaptcha',
    )

except Exception as e:
    sys.exit(e)

else:
    sys.exit('solved: ' + str(result))
// https://github.com/2captcha/2captcha-csharp

using System;
using System.Linq;
using TwoCaptcha.Captcha;

namespace TwoCaptcha.Examples
{
    public class HCaptchaExample
    {
        public void Main()
        {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            HCaptcha captcha = new HCaptcha();
            captcha.SetSiteKey("f7de0da3-3303-44e8-ab48-fa32ff8ccc7b");
            captcha.SetUrl("https://2captcha.com/demo/hcaptcha");
            try
            {
                solver.Solve(captcha).Wait();
                Console.WriteLine("Captcha solved: " + captcha.Code);
            }
            catch (AggregateException e)
            {
                Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
            }
        }
    }
}
// https://github.com/2captcha/2captcha-java

package examples;

import com.twocaptcha.TwoCaptcha;
import com.twocaptcha.captcha.HCaptcha;

public class HCaptchaExample {
    public static void main(String[] args) {
        TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
        HCaptcha captcha = new HCaptcha();
        captcha.setSiteKey("f7de0da3-3303-44e8-ab48-fa32ff8ccc7b");
        captcha.setUrl("https://2captcha.com/demo/hcaptcha");
        try {
            solver.solve(captcha);
            System.out.println("Captcha solved: " + captcha.getCode());
        } catch (Exception e) {
            System.out.println("Error occurred: " + e.getMessage());
        }
    }

}
// https://github.com/2captcha/2captcha-go

package main

import (
    "fmt"
    "log"
    "github.com/2captcha/2captcha-go"
)

func main() {
    client := api2captcha.NewClient("API_KEY")
    cap := api2captcha.HCaptcha{
        SiteKey: "f7de0da3-3303-44e8-ab48-fa32ff8ccc7b",
        Url: "https://2captcha.com/demo/hcaptcha",   
    }
    code, err := client.Solve(cap.ToRequest())
    if err != nil {
        log.Fatal(err);
    }
    fmt.Println("code "+code)
}
require 'api_2captcha'

client =  Api2Captcha.new("YOUR_API_KEY")

result = client.hcaptcha({
sitekey: 'f7de0da3-3303-44e8-ab48-fa32ff8ccc7b',
pageurl: 'https://2captcha.com/demo/hcaptcha'
})

Полезные ссылки