Menu de documentation

HCaptchaTask: résoudre HCaptcha via un proxy

Les développeurs de hCaptcha appellent leur captcha "une solution de remplacement pour Recaptcha". Nous avons essayé de créer la même chose dans notre API, donc les propriétés de la tâche sont absolument les mêmes que dans RecaptchaV2Task sauf la propriété "type".

IMPORTANT: hCaptcha semble avoir une limite de tâches résolues à partir d'une adresse IP, environ 3 éléments par 12 heures. Tenez-en compte lorsque vous créez un processus de résolution via votre proxy.

Exemple de Recaptcha V2

Objet de tâche

Propriété Type Obligatoire Objectif
type String Yes HCaptchaTask
websiteURL String Yes Adresse d'une page Web cible. Peut être situé n'importe où sur le site Web, même dans une zone membre. Nos ouvriers n'y naviguent pas, mais simulent plutôt la visite.
websiteKey String Yes clé de site hCaptcha
proxyType String Yes Type de proxy
http - proxy http/https habituel
socks4 - proxy socks4
socks5 - proxy socks5
proxyAddress String Yes Adresse IP proxy ipv4/ipv6. Aucun nom d'hôte ou adresse IP des réseaux locaux.
proxyPort Integer Yes Port proxy
proxyLogin String Non Connexion pour proxy qui nécessite une autorisation (de base)
proxyPassword String Non Mot de passe proxy
userAgent String Yes Indiquez l'agent utilisateur que vous utilisez pour naviguer sur le site Web. Nos travailleurs utiliseront la même valeur pendant le processus de résolution du Hcaptcha.
isInvisible Boolean Non Indiquez si le Hcaptcha est invisible ou non. Cela rendra un widget approprié pour nos travailleurs.
enterprisePayload Object Non Paramètres supplémentaires que nous utiliserons pour rendre le widget Hcaptcha pour la version Enterprise.

Propriété Type Obligatoire
rqdata String Non
sentry Boolean Non
apiEndpoint String Non
endpoint String Non
reportapi String Non
assethost String Non
imghost String Non

Exemple de demande

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "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",
            "isInvisible": false,
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask

# Enterprise version:
curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "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",
            "isInvisible": false,
            "enterprisePayload": {
              "rqdata": "rqdata value from target website",
              "sentry": true
            }
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

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

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

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

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

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

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

//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);

//optional invisible Hcaptcha flag
//$api->setIsInvisible();

//set Enterprise parameters this way:
//$api->setEnterprisePayload([
//    "rqdata"    =>  "somerqdata",
//    "sentry"    =>  true
//]);

//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 "\n";
    echo "your hcaptcha token: $gResponse\n\n";

}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.hcaptchaproxyon import *

solver = hCaptchaProxyon()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://hcaptcha.com/")
solver.set_website_key("00000000-0000-0000-0000-000000000000")
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")

# tell API that Hcaptcha is invisible
#solver.set_is_invisible(1)

# set here parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
#solver.set_enterprise_payload({
#    "rqdata": "rq data value from target website",
#    "sentry": 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");

//set Hcaptcha Enterprise payload if any
const enterprisePayload = {
   "rqdata": "rqdata from target website",
   "sentry": true
   //etc
}
//if it is non-Enteprise, set to null
//const enterprisePayload = null;

//set to true if you want us to render it in invisible mode
const isInvisible = false;

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.solveHCaptchaProxyOn('http://DOMAIN.COM',
    'WEBSITE_KEY',
    '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',
    enterprisePayload,
    isInvisible)
    .then(gresponse => {
        console.log('g-response: '+gresponse);
    })
    .catch(error => console.log('test received error '+error));
      
C#
          //git clone git@github.com:AdminAnticaptcha/anticaptcha-csharp

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 HCaptcha
            {
                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
            };

            // use to set invisible mode
            //api.IsInvisible = true

            // use to set Hcaptcha Enterprise parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
            //api.EnterprisePayload.Add("rqdata", "rqdata value from target website");
            //api.EnterprisePayload.Add("sentry", "true");

            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.HCaptcha;
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);

        HCaptcha api = new HCaptcha();
        api.setClientKey("API_KEY_HERE");
        api.setWebsiteUrl(new URL("http://makeawebsitehub.com/HCaptcha/test.php"));
        api.setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");

        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!!!
        // 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(NoCaptcha.ProxyTypeOption.HTTP);
        api.setProxyAddress("xx.xxx.xx.xx");
        api.setProxyPort(8282);
        api.setProxyLogin("login");
        api.setProxyPassword("password");

        // uncomment to tell API that HCaptcha is in invisible mode
//        api.setIsInvisible(true);

        // uncomment and use for HCaptcha Enterprise version if you need to set parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
//        JSONObject enterprisePayload = new JSONObject();
//        try {
//            enterprisePayload.put("rqdata", "rqdata from the target website");
//            enterprisePayload.put("sentry", Boolean.TRUE);
//            enterprisePayload.put("apiEndpoint", "https://...");
//        } 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);
        }
    }
}

        

Exemple de réponse

JSON sans erreurs
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON avec une erreur
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

Récupérer la solution

Utilisez la méthode getTaskResult demander la solution. Donnez du temps à un travailleur, par exemple 5 secondes, avant de faire la première demande. Si le travailleur est toujours occupé, réessayez dans 3 secondes.

Objet de solution de tâche

Propriété Type Objectif
gRecaptchaResponse String Chaîne de jeton requise pour interagir avec le formulaire de soumission sur le site Web cible.

Exemple de réponse

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