Menu dokumentacja

RecaptchaV2EnterpriseTask: rozwiązywanie Google Recaptcha V2 Enterprise z proxy

Ten typ zadania służy do rozwiązywania zadań Google Recaptcha Enterprise V2 za pomocą dostarczonego proxy.

Podobne do RecaptchaV2Task, z tym wyjątkiem, że zadania są rozwiązywane za pomocą Enterprise API i przypisywane pracownikom o najlepszej punktacji Recaptcha V3. Więcej informacji znaleźć można w tej części FAQ.

Przykład Recaptcha V2 Enterprise. Wizualnie taki sam, jak wersja non-enterprise.

Obiekt zadanie

Właściwość/atrybut Typ Wymagany Przeznaczenie
type Łańcuch znaków (String) Tak RecaptchaV2EnterpriseTask
websiteURL Łańcuch znaków (String) Tak Adres docelowej strony. Może wskazywać na dowolną lokalizację w ramach witryny, włącznie ze strefami dla zalogowanych. Nasi pracownicy nie muszą tam wchodzić, gdyż wizyta jest symulowana.
websiteKey Łańcuch znaków (String) Tak Klucz strony Recaptcha. Informację jak pozyskać klucz znaleźć można w tym artykule.
enterprisePayload Obiekt (object) Nie Dodatkowe parametry, które należy przekazać do metody "grecaptcha.enterprise.render" wraz z kluczem strony. Przykłady tego, czego należy szukać:
JSON bez błędów
                  grecaptcha.enterprise.render("some-div-id", {
    sitekey: "6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16",
    theme: "dark",
    s: "2JvUXHNTnZl1Jb6WEvbDyBMzrMTR7oQ78QRhBcG07rk9bpaAaE0LRq1ZeP5NYa0N...ugQA"
});
                
W tym przykładzie można zauważyć parametr "s", który nie jest udokumentowany, ale wymagany. Należy go przekazywać do API, abyśmy mogli prawidłowo renderować widget Recaptcha.
apiDomain Łańcuch znaków (String) Nie Użyj tego parametru, aby wysłać nazwę domeny, z której powinien być obsługiwany skrypt Recaptcha. Może mieć tylko jedną z dwóch wartości: "www.google.com" lub "www.recaptcha.net". Nie używaj tego parametru, jeśli nie rozumiesz, co robisz.
proxyType Łańcuch znaków (String) Tak Typ proxy
http - zwyczajne proxy http/https
socks4 - proxy socks4
socks5 - proxy socks5
proxyAddress Łańcuch znaków (String) Tak Adres ipv4/ipv6 proxy. Nie stosować nazw hostów ani adresów IP z sieci lokalnych.
proxyPort Integer Tak Port proxy
proxyLogin Łańcuch znaków (String) Nie Login dla proxy wymagających uwierzytelniania (podstawowe)
proxyPassword Łańcuch znaków (String) Nie Hasło proxy
userAgent Łańcuch znaków (String) Tak Informacja User-Agent o przeglądarce, stosowana przy emulacji. Wymagane jest podanie sygnatury nowoczesnej przeglądarki, w przeciwnym razie Google każe "zaktualizować przeglądarkę".
cookies Łańcuch znaków (String) Nie Dodatkowe cookies, które powinniśmy użyć w domenach Google.

Przykład żądania

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"RecaptchaV2EnterpriseTask",
            "websiteURL":"http://mywebsite.com/recaptcha/test.php",
            "websiteKey":"6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16",
            "enterprisePayload": {
                "s": "SOME_ADDITIONAL_TOKEN"
            },
            "proxyType":"http",
            "proxyAddress":"8.8.8.8",
            "proxyPort":8080,
            "proxyLogin":"proxyLoginHere",
            "proxyPassword":"proxyPasswordHere",
            "userAgent":"MODERN_USER_AGENT_HERE"
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git

include("anticaptcha.php");
include("recaptchaV2Enterprise.php");

$api = new RecaptchaV2Enterprise();
$api->setVerboseMode(true);

//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");

//target website address
$api->setWebsiteURL("http://enteprisedomain.com/recaptcha/test.php");

//recaptcha key from target website
$api->setWebsiteKey("ENTEPRISE_SITEKEY_HERE");

//optional custom payload for grecaptcha.enterprise.render
$api->setEnterprisePayload(["s" => "TEMPORARY_TOKEN_VALUE"]);

//proxy access parameters
// DO NOT USE PURCHASED/RENTED PROXIES ON PROXY SERVICES!!!
// THEY WILL NOT WORK!
// USE ONLY PROXIES YOU INSTALL YOURSELF ON YOUR OWN SERVER OR FAST VPS
// USE PROPER PROXY SOFTWARE LIKE SQUID !
// INSTALLATION INSTRUCTIONS:
// https://docker.anti-captcha.com/apidoc/articles/how-to-install-squid
$api->setProxyType("http");
$api->setProxyAddress("8.8.8.8");
$api->setProxyPort(1234);
//optional login and password
$api->setProxyLogin("login");
$api->setProxyPassword("password");

//browser header parameters
$api->setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116");

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
$api->setSoftId(0);

//create task in API
if (!$api->createTask()) {
    $api->debout("API v2 send failed - ".$api->getErrorMessage(), "red");
    return false;
}

$taskId = $api->getTaskId();

//wait in a loop for max 300 seconds till task is solved
if (!$api->waitForResult(300)) {
    echo "could not solve captcha\n";
    echo $api->getErrorMessage()."\n";
} else {

    $gResponse    =   $api->getTaskSolution();
    echo "your recaptcha token: $gResponse\n\n";

}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.recaptchav2enterpriseproxyon import *

solver = recaptchaV2EnterpriseProxyon()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
# solver.set_enterprise_payload({"s": "sometoken"})
solver.set_website_url("https://website.com")
solver.set_website_key("SITE_KEY")
solver.set_proxy_address("PROXY_ADDRESS")
solver.set_proxy_port(1234)
solver.set_proxy_login("proxylogin")
solver.set_proxy_password("proxypassword")
solver.set_user_agent("Mozilla/5.0")
solver.set_cookies("test=true")

# Specify softId to earn 10% commission with your app.
# Get your softId here: https://anti-captcha.com/clients/tools/devcenter
solver.set_soft_id(0)

g_response = solver.solve_and_return_solution()
if g_response != 0:
    print("g-response: "+g_response)
else:
    print("task finished with error "+solver.error_code)
        
NodeJS
          //npm -i @antiadmin/anticaptchaofficial
//https://github.com/AdminAnticaptcha/anticaptcha-npm

const ac = require("@antiadmin/anticaptchaofficial");

ac.setAPIKey('YOUR_API_KEY_HERE');

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
ac.setSoftId(0);

ac.solveRecaptchaV2EnterpriseProxyOn(
    'http://DOMAIN.COM',
    'WEBSITE_KEY',
    {
        "s" : "SOME_TOKEN",
        "any_custom_parameter" : "string_number_or_boolean"
    },
    'http', //http, socks4, socks5
    'PROXY_ADDRESS',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116',
    'some=cookies')
    .then(gresponse => {
        console.log('g-response: '+gresponse);
    })
    .catch(error => console.log('test received error '+error));
        
C#
          using System;
using Anticaptcha_example.Api;
using Anticaptcha_example.Helper;
using Newtonsoft.Json.Linq;

namespace Anticaptcha_example
{
    internal class Program
    {
        private static void Main() {

            DebugHelper.VerboseMode = true;

            var api = new RecaptchaV2Enterprise
            {
                ClientKey = "YOUR_API_KEY_HERE",
                WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
                WebsiteKey = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
                ProxyAddress = "xxx.xx.xx.xx",
                ProxyPort = 1234,
                ProxyLogin = "login",
                ProxyPassword = "password",
                UserAgent = "Opera 6.0",
                // Specify softId to earn 10% commission with your app.
                // Get your softId here:
                // https://anti-captcha.com/clients/tools/devcenter
                SoftId = 0

            };
            api.EnterprisePayload.Add("s", "SOME_UNDOCUMENTED_TOKEN");
            api.EnterprisePayload.Add("blabla", "ANOTHER TOKEN");

            if (!api.CreateTask())
                DebugHelper.Out("API v2 send failed. " + api.ErrorMessage, DebugHelper.Type.Error);
            else if (!api.WaitForResult())
                DebugHelper.Out("Could not solve the captcha.", DebugHelper.Type.Error);
            else
                DebugHelper.Out("Result: " + api.GetTaskSolution().GRecaptchaResponse, DebugHelper.Type.Success);

        }
    }
}

        
Java
          //git clone git@github.com:AdminAnticaptcha/anticaptcha-java.git

package com.anti_captcha;

import com.anti_captcha.Api.RecaptchaV2Enterprise;
import com.anti_captcha.Helper.DebugHelper;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.concurrent.ThreadLocalRandom;

public class Main {

    public static void main(String[] args) throws InterruptedException, MalformedURLException, JSONException {

        DebugHelper.setVerboseMode(true);

        RecaptchaV2Enterprise api = new RecaptchaV2Enterprise();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setWebsiteUrl(new URL("http://http.myjino.ru/recaptcha/test-get.php"));
        api.setWebsiteKey("6Lc_aCMTAAAAABx7u2W0WPXnVbI_v6ZdbM6rYf16");
        api.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 " +
                "(KHTML, like Gecko) Chrome/52.0.2743.116");

        // proxy access parameters
        // DO NOT USE PURCHASED/RENTED PROXIES WITH PROXY SERVICES!!!
        api.setProxyType(RecaptchaV2.ProxyTypeOption.HTTP);
        api.setProxyAddress("xx.xxx.xx.xx");
        api.setProxyPort(8282);
        api.setProxyLogin("login");
        api.setProxyPassword("password");

        //optional payload, please look for RecaptchaV2Enterprise documentation regarding it
        JSONObject enterprisePayload = new JSONObject();
        try {
            enterprisePayload.put("s", "SOME_UNDOCUMENTED_TOKEN_VALUE");
        } catch (Exception e) {
            DebugHelper.out("JSON error: "+e.getMessage(), DebugHelper.Type.ERROR);
            return;
        }
        api.setEnterprisePayload(enterprisePayload);

        //Specify softId to earn 10% commission with your app.
        //Get your softId here: https://anti-captcha.com/clients/tools/devcenter
        api.setSoftId(0);

        if (!api.createTask()) {
            DebugHelper.out(
                    "API v2 send failed. " + api.getErrorMessage(),
                    DebugHelper.Type.ERROR
            );
        } else if (!api.waitForResult()) {
            DebugHelper.out("Could not solve the captcha.", DebugHelper.Type.ERROR);
        } else {
            DebugHelper.out("Result: " + api.getTaskSolution().getGRecaptchaResponse(), DebugHelper.Type.SUCCESS);
        }

    }
}
        

Przykład odpowiedzi

JSON bez błędów
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON z błędem
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

Odbierz rozwiązanie

Skorzystaj z metody getTaskResult by odebrać rozwiązanie. Daj pracownikowi trochę czasu, na przykład 5 sekund, zanim prześlesz pierwszą prośbę odbioru. Jeśli pracownik nadal jest zajęty, powtórz próbę po 3 sekundach.

Obiekt rozwiązanie zadania

Właściwość/atrybut Typ Przeznaczenie
gRecaptchaResponse Łańcuch znaków (String) Łańcuch znaków token wymagany do interakcji z formularzem wysyłania na docelowej stronie.

Przykład odpowiedzi

JSON bez błędów
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}