reCAPTCHA V2 Enterprise

reCAPTCHA V2 Enterprise

Основанный на токенах метод автоматического решения reCAPTCHA V2 Enterprise.

Полученный токен может быть отправлен на целевой веб-сайт внутри поля формы g-recaptcha-response или передан функции обратного вызова. Метод Enterprise идентичный, как и reCAPTCHA V2, но в Enterprise версии для загрузки капчи используется reCAPTCHA Enterprise API.

Типы задач

  • RecaptchaV2EnterpriseTaskProxyless - Подходит для большинства случаев. Мы используем собственный пул прокси-серверов для решения капч
  • RecaptchaV2EnterpriseTask - используется в случаях, когда требуется использовать одинаковый IP-адрес. Например в сервисах Google, таких как Google Search, YouTube и т.д. Плохие прокси-серверы резко снизят вероятность успеха и увеличат время решения капчи.

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

Свойство Тип Обязателен Описание
type Строка Да Тип задачи:
RecaptchaV2EnterpriseTaskProxyless
RecaptchaV2EnterpriseTask
websiteURL Строка Да Полный URL-адрес целевой веб-страницы, на которую загружается капча. Мы не открываем страницу, это не проблема, если страница доступна только для авторизованных пользователей.
websiteKey Строка Да reCAPTCHA sitekey. Свойство data-sitekey для reCAPTCHA, которое можно найти внутри элемента div или внутри параметра k запросов к reCAPTHCHA API. Вы также можете использовать script, чтобы найти значение sitekey.
enterprisePayload Объект Нет Дополнительные параметры, передаваемые вызову grecaptcha.enterprise.render. Например, может существовать объект, содержащий значение s.
isInvisible Логический Нет Укажите значение true для невидимой версии reCAPTCHA. Невидимая версия reCAPTCHA, это когда вы не видите флажок, но капча появляется на странице. В основном используется вместе с функцией обратного вызова.
userAgent Строка Нет User-Agent браузера, который будет использован пользователем при загрузке капчи. Важно использовать значения User-Agent только современных браузеров.
cookies Строка Нет Переданные вами cookie будут установлены в браузере нашего работника. Часто используется для решения капчи в сервисах Google. Формат передачи cookies: key1=val1; key2=val2.
apiDomain Строка Нет Домен, с которого загружается reCAPTCHA: recaptcha.net или google.com. По умолчанию используется google.com.

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

Задача RecaptchaV2EnterpriseTask расширяет RecaptchaV2EnterpriseTaskProxyless, добавляя набор параметров, связанных с прокси, перечисленных ниже. Задача RecaptchaV2EnterpriseTask предназначена для решения капчи используя ваш прокси сервер.

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

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

Метод: createTask
Эндпоинт API: https://api.2captcha.com/createTask

RecaptchaV2EnterpriseTaskProxyless

{
    "clientKey":"YOUR_API_KEY",
    "task": {
        "type":"RecaptchaV2EnterpriseTaskProxyless",
        "websiteURL":"https://2captcha.com/demo/recaptcha-v2-enterprise",
        "websiteKey":"6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u",
        "isInvisible":false
    },
    "softId": "3898",
    "callbackUrl": "https://1.2.3.4/webhooks/captcha"
}

RecaptchaV2Task

{
    "clientKey":"YOUR_API_KEY",
    "task": {
        "type":"RecaptchaV2EnterpriseTask",
        "websiteURL":"https://2captcha.com/demo/recaptcha-v2-enterprise",
        "websiteKey":"6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u",
        "isInvisible":false,
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
        "cookies":"foo=bar; baz=1",
        "proxyType":"http",
        "proxyAddress":"1.2.3.4",
        "proxyPort":"8080",
        "proxyLogin":"user23",
        "proxyPassword":"p4$w0rd"
    },
    "softId": "3898",
    "callbackUrl": "https://1.2.3.4/webhooks/captcha"
}

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

Метод: getTaskResult
Эндпоинт API: https://api.2captcha.com/getTaskResult

{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "gRecaptchaResponse": "03ADUVZw...UWxTAe6ncIa",
        "token": "03ADUVZw...UWxTAe6ncIa"
    },
    "cost": "0.00299",
    "ip": "1.2.3.4",
    "createTime": 1692863536,
    "endTime": 1692863556
}

Примеры кода

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

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

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

try {
    $result = $solver->recaptcha([
        'sitekey' => '6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
        'url'     => 'https://2captcha.com/demo/recaptcha-v2-enterprise-enterprise',
        'enterprise' => 1,
    ]);
} 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.recaptcha(
        sitekey='6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
        url='https://2captcha.com/demo/recaptcha-v2-enterprise',
        enterprise=1)

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 reCAPTCHAV2EnterpriseExample
    {
        public void Main()
        {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            ReCaptcha captcha = new ReCaptcha();
            captcha.SetSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
            captcha.SetUrl("https://2captcha.com/demo/recaptcha-v2-enterprise");
            captcha.setEnterprise(true);
            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.reCAPTCHA;

public class reCAPTCHAV2EnterpriseExample {
    public static void main(String[] args) {
        TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
        ReCaptcha captcha = new ReCaptcha();
        captcha.setSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
        captcha.setUrl("https://2captcha.com/demo/recaptcha-v2-enterprise");
        captcha.setEnterprise(true);
        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")
    captcha := api2captcha.ReCaptcha{
        SiteKey: "6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u",
        Url: "https://2captcha.com/demo/recaptcha-v2-enterprise",
        Enterprise: true,
    } 
    code, err := client.Solve(captcha.ToRequest())
    if err != nil {
        log.Fatal(err);
    }
    fmt.Println("code "+code)
}
# https://github.com/2captcha/2captcha-ruby

require 'api_2captcha'

client =  Api2Captcha.new("YOUR_API_KEY")

result = client.recaptcha_v2({
  googlekey: '6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
  pageurl: 'https://2captcha.com/demo/recaptcha-v2-enterprise',
  enterprise: 1
})

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