Menú de Documentación

HCaptchaTaskProxyless: resuelve HCaptcha sin proxies

Los desarrolladores de hCaptcha llaman a su captcha "un reemplazo exacto para Recaptcha". Intentamos crear lo mismo en nuestra API, para que las propiedades de las tareas sean absolutamente lo mismo que en RecaptchaV2TaskProxyless, excepto por la propiedad "tipo".

Ejemplo de Recaptcha V2

Objeto de la tarea

Propiedad Tipo Requerido Propósito
type Cadena HCaptchaTaskProxyless
websiteURL Cadena Dirección de un sitio web objetivo. Puede localizarse en cualquier parte del sitio web, incluso en un área de miembros. Nuestros trabajadores no navegan ahí, en su lugar simulan la visita.
websiteKey Cadena Clave de sitio de hCaptcha
userAgent Cadena Indique el agente de usuario que utiliza para navegar por el sitio web. Nuestros trabajadores utilizarán el mismo valor durante el proceso de resolución de Hcaptcha.
isInvisible Booleano No Especifica si Hcaptcha es invisible o no. Esto hará que un widget apropiado para nuestros trabajadores.
enterprisePayload Objeto No Parámetros adicionales que usaremos para renderizar el widget Hcaptcha para la versión Enterprise.

Propiedad Tipo Requerido
rqdata Cadena No
sentry Booleano No
apiEndpoint Cadena No
endpoint Cadena No
reportapi Cadena No
assethost Cadena No
imghost Cadena No

Ejemplo de solicitud

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"HCaptchaTaskProxyless",
            "websiteURL":"https://hcaptcha.com/",
            "websiteKey":"00000000-0000-0000-0000-000000000000",
            "isInvisible": false,
            "userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116"
        },
    "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":"HCaptchaTaskProxyless",
            "websiteURL":"https://hcaptcha.com/",
            "websiteKey":"00000000-0000-0000-0000-000000000000",
            "userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116",
            "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("hcaptchaproxyless.php");

$api = new HCaptchaProxyless();
$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");

//hcaptcha key from target website
$api->setWebsiteKey("f9630567-0000-0000-0000-9c91c6276dff");

//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.hcaptchaproxyless import *

solver = hCaptchaProxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://website.com")
solver.set_website_key("SITE_KEY")

# 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");

//substitute with your own user agent
const userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.123 (KHTML, like Gecko) Chrome/52.0.2743.116";

//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.solveHCaptchaProxyless('http://DOMAIN.COM', 'WEBSITE_KEY', userAgent, 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 HCaptchaProxyless
            {
                ClientKey = "YOUR_API_KEY_HERE",
                WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
                WebsiteKey = "51829642-0000-0000-896c-594f89d700cc",
                UserAgent = "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
                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.HCaptchaProxyless;
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);

        HCaptchaProxyless api = new HCaptchaProxyless();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setWebsiteUrl(new URL("http://makeawebsitehub.com/recaptcha/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");

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

        

Ejemplo de respuesta

JSON sin errores
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON con un error
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

Obtener la solución

Usa el método getTaskResult para pedir la solución. Dale algo de tiempo al trabajador, como 5 segundos, antes de hacer la primera solicitud. Si el trabajador sigue ocupado, vuelve a intentar en 3 segundos.

Objeto de solución de la tarea

Propiedad Tipo Propósito
gRecaptchaResponse Cadena Cadena de tokens requerida para interactuar con el envío de formulario en el sitio web de destino.

Ejemplo de respuesta

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