Inicio Documentación Tutoriales Registrarse
Tipos de tarea soportadas
Métodos API
Artículos
Tutoriales
GitHub
Menú de Documentación

Resolver el captcha de Turnstile sin un proxy - TurnstileTaskProxyless

Turnstile captcha es otro intento de sustituir a Recaptcha. Soportamos todos sus subtipos automáticamente: manual, no interactivo e invisible. No es necesario especificar el subtipo. También proporcionar su propio User-Agent personalizado no es necesario y no funcionará en absoluto.

Pruebe primero este tipo de tarea para la tasa de desviación antes de probar las tareas con apoderados.

Ejemplo de captcha

Objeto de la tarea

Propiedad Tipo Requerido Propósito
type Cadena TurnstileTaskProxyless
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 Llave de sitio del torniquete

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":"TurnstileTaskProxyless",
            "websiteURL":"https://website.com/",
            "websiteKey":"0xAAAAAAAABBBBBBBCCCCCC"
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

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

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

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

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

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

//turnstile key from target website
$api->setWebsiteKey("0xAAAAAAAABBBBBBBCCCCCC");

//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 {

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

}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.turnstileproxyless import *

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

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

token = solver.solve_and_return_solution()
if token != 0:
    print "token: "+token
else:
    print "task finished with error "+solver.error_code
        
NodeJS
          //npm install @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.solveTurnstileProxyless('http://DOMAIN.COM', 'WEBSITE_KEY')
    .then(token => {
        console.log('token: '+token);
    })
    .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 TurnstileProxyless
            {
                ClientKey = "YOUR_API_KEY_HERE",
                WebsiteUrl = new Uri("http://website.com/"),
                WebsiteKey = "0xAAAAAAAABBBBBBBCCCCCC",
                // Specify softId to earn 10% commission with your app.
                // Get your softId here:
                // https://anti-captcha.com/clients/tools/devcenter
                SoftId = 0
            };

            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().token, DebugHelper.Type.Success);

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

package com.anti_captcha;

import com.anti_captcha.Api.TurnstileProxyless;
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);

        TurnstileProxyless api = new TurnstileProxyless();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setWebsiteUrl(new URL("http://website.com/"));
        api.setWebsiteKey("0xAAAAAAAABBBBBBBCCCCCC");

        //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().getToken(), 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
token Cadena Cadena de tokens requerida para interactuar con el envío de formulario en el sitio web de destino.
userAgent Cadena User-Agent del navegador del trabajador. Utilízalo cuando envíes el token de respuesta.

Ejemplo de respuesta

JSON sin errores
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "token":"0.vtJqmZnvobaUzK2i2PyKaSqHELYtBZfRoPwMvLMdA81WL_9G0vCO3y2VQVIeVplG0mxYF7uX.......",
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}