Resolva o captcha do Turnstile por meio de um proxy - TurnstileTask
O captcha da catraca é outra tentativa de substituir o Recaptcha. Suportamos todos os seus subtipos automaticamente: manual, não interativo e invisível. Não há necessidade de especificar o subtipo. Também não é necessário fornecer seu próprio User-Agent personalizado e não funcionará.
Este tipo de tarefa requer um proxy. Por favor, use-o apenas se as tarefas de proxy-off (TurnstileTaskProxyless) estiverem falhando, pois isso torna nossos funcionários mais lentos. Resolver captchas com proxies também requer super alta qualidade de seus proxies, que você deve instalar em seus próprios servidores VPS e nunca usar serviços de proxy comprados. Para saber mais, consulte esta seção FAQ sobre proxies.

Exemplo de Captcha
Objeto da tarefa
Propriedade | Tipo | Obrigatório | Motivo |
---|---|---|---|
type | String | Sim | TurnstileTask |
websiteURL | String | Sim | Endereço de uma página web de interesse. Pode estar localizado em qualquer lugar no website, até mesmo na área de membro. Nossos workers não navegam em tais lugares, mas simulam a visita. |
websiteKey | String | Sim | Chave do site da catraca |
proxyType | String | Sim | Tipo do proxy http - proxy http/https comum socks4 - proxy socks4 socks5 - proxy socks5 |
proxyAddress | String | Sim | Endereço de IP ipv4/ipv6 do proxy. Nenhum nome de host ou endereço de IP de redes locais. |
proxyPort | Inteiro | Sim | Porta do proxy |
proxyLogin | String | Não | Login para o proxy que precisa de autorização (básico) |
proxyPassword | String | Não | Senha do proxy |
Exemplo de solicitação
CURL
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"TurnstileTask",
"websiteURL":"https://website.com/",
"websiteKey":"0xAAAAAAAABBBBBBBCCCCCC",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere"
},
"softId": 0
}' https://api.anti-captcha.com/createTask
PHP
<?php
//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git
include("anticaptcha.php");
include("turnstile.php");
$api = new Turnstile();
$api->setVerboseMode(true);
//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");
//target website address
$api->setWebsiteURL("https://website.com/");
//turnstile key from target website
$api->setWebsiteKey("0xAAAAAAAABBBBBBBCCCCCC");
//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://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");
//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.turnstileproxyon import *
solver = turnstileProxyon()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://website.com/")
solver.set_website_key("sitekey_here")
solver.set_proxy_address("PROXY_ADDRESS")
solver.set_proxy_port(1234)
solver.set_proxy_login("proxylogin")
solver.set_proxy_password("proxypassword")
# 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.solveTurnstileProxyOn('http://DOMAIN.COM',
'WEBSITE_KEY',
'http', //http, socks4, socks5
'PROXY_ADDRESS',
'PROXY_PORT',
'PROXY_LOGIN',
'PROXY_PASSWORD')
.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 Turnstile
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://website.com"),
WebsiteKey = "sitekey",
ProxyAddress = "xxx.xx.xx.xx",
ProxyPort = 1234,
ProxyLogin = "login",
ProxyPassword = "password",
// 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.Turnstile;
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);
Turnstile api = new Turnstile();
api.setClientKey("API_KEY_HERE");
api.setWebsiteUrl(new URL("http://website.com"));
api.setWebsiteKey("sitekey_here");
// 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://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");
//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);
}
}
}
Exemplo de resposta
JSON sem erros
{
"errorId": 0,
"taskId": 7654321
}
JSON com um erro
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Obter a solução
Use o método getTaskResult para solicitar a solução. Dê um tempo para o worker, como 5 segundos, antes de fazer a primeira solicitação. Se o worker ainda estiver ocupado, tente novamente em 3 segundos.
Objeto de solução de tarefa
Propriedade | Tipo | Motivo |
---|---|---|
token | String | String de token que é necessária para interagir com o formulário de envio no website de interesse. |
userAgent | String | User-Agent do navegador do trabalhador. Use-o ao enviar o token de resposta. |
Exemplo de resposta
JSON sem erros
{
"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"
}