Lös Turnstile captcha via en proxy - TurnstileTask
Turnstile captcha är ett annat försök att ersätta Recaptcha. Vi stöder alla dess undertyper automatiskt: manuell, icke-interaktiv och osynlig. Du behöver inte ange undertypen. Att tillhandahålla din egen anpassade User-Agent är inte heller nödvändigt och kommer inte att fungera alls.
Denna typ av uppgift kräver en proxy. Använd den endast om uppgifter utan proxy (TurnstileTaskProxyless) misslyckas, eftersom det gör våra anställda långsammare. Att lösa captchas med proxys kräver också superhög kvalitet på dina proxys som du bör installera själv på dina egna VPS-servrar och aldrig använda köpta proxytjänster. Om du vill veta mer kan du läsa det här Vanliga frågor avsnittet om proxys.

Exempel på Captcha
Uppdragets objekt
Egenskap | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
type | Textsträng | Ja | TurnstileTask |
websiteURL | Textsträng | Ja | Målsidans webbadress. Kan hittas var som helst på webbplatsen. Även i inloggat läge. Våra arbetare går inte dit, utan emulerar besöket. |
websiteKey | Textsträng | Ja | Nyckel till en turnstile |
proxyType | Textsträng | Ja | Typ av proxy http – vanlig http-/https-proxy socks4 – socks4-proxy socks5 – socks5-proxy |
proxyAddress | Textsträng | Ja | Proxyns ip-adress (IPv4/IPv6). Inga värdnamn eller ip-adresser från lokala nätverk. |
proxyPort | Heltal (integer) | Ja | Proxyport |
proxyLogin | Textsträng | Nej | Användarnamn till proxy som kräver autentisering (grundläggande) |
proxyPassword | Textsträng | Nej | Lösenord till proxy |
Exempel på förfrågan
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);
}
}
}
Exempel på svar
JSON utan fel
{
"errorId": 0,
"taskId": 7654321
}
JSON med fel
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Hämta lösningen
Använd metoden getTaskResult för att begära en lösning. Ge arbetaren lite tid, cirka 5 sekunder, innan den första förfrågningen. Om arbetaren fortfarande är upptagen kan du prova igen om 3 sekunder.
Lösningens objekt
Egenskap | Typ | Beskrivning |
---|---|---|
token | Textsträng | Tokensträng som behövs för att skicka formulär på målsidan. |
userAgent | Textsträng | User-Agent för arbetstagarens webbläsare. Använd den när du skickar in svarstoken. |
Exempel på svar
JSON utan fel
{
"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"
}