Menu
دورزدن کپچای Turnstile
کپچای Turnstile تلاش دیگری برای جایگزینی Recaptcha است. ما از همه انواع فرعی آن بهصورت خودکار پشتیبانی میکنیم: دستی، غیرتعاملی و نامرئی. نیازی به تعیین نوع فرعی نیست. همچنین لازم نیست که «عامل کاربر» سفارشی خودتان را ارائه کنید و این عامل کاربر بههیچوجه کارایی نخواهد داشت.
قبل از تست وظیفههای با پروکسی، ابتدا این نوع وظیفه را از نظر میزان موفقیت در دورزدن کپچا امتحان کنید.

مثال کپچا
شیء وظیفه
| خصوصیت | نوع | ضروری | هدف |
|---|---|---|---|
| type | رشته | بله | TurnstileTaskProxyless |
| websiteURL | رشته | بله | آدرس صفحه وب هدف. میتواند در هرجایی از وبسایت حتی بخش اعضا قرار گرفته باشد. کارگران ما به آنجا نمیروند بلکه در عوض بازدید را شبیهسازی میکنند. |
| websiteKey | رشته | بله | کلید سایت Turnstile |
| action | رشته | خیر | پارامتر اختیاری "action". |
| cData | رشته | خیر | توکن اختیاری "cData". مقاله مرتبط: چگونه Cloudflare را دور بزنیم |
| chlPageData | رشته | خیر | نشانه "Chlpagedata" اختیاری |
Python
Node.js
Go
PHP
Java
Kotlin
C#
C++
Rust
Ruby
bash
چگونه Cloudflare Turnstile را در 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")
# Optionally specify page action value
solver.set_action("some action")
# Optionally specify cData and chlPageData tokens for Cloudflare pages
#solver.set_cdata("cdata_token")
#solver.set_chlpagedata("chlpagedata_token")
# 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)
# user-agent in case you need it:
print("user-agent: "+solver.get_user_agent())
else:
print("task finished with error "+solver.error_code)چگونه Cloudflare Turnstile را در Node.js حل کنیم
//npm install @antiadmin/anticaptchaofficial
//https://github.com/anti-captcha/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', 'optional_action', 'optional_cData_token', 'optional_chlPageData_token')
.then(token => {
console.log('token: '+token);
})
.catch(error => console.log('test received error '+error));
// in case you need it
console.log("worker's user-agent:");
console.log(ac.getUserAgent());چگونه Cloudflare Turnstile را در Go حل کنیم
// Install with:
// go get github.com/anti-captcha/anticaptcha-go
package main
import (
"fmt"
"github.com/anti-captcha/anticaptcha-go"
"log"
)
func main() {
// Create API client and set the API Key
ac := anticaptcha.NewClient("API_KEY_HERE")
// set to 'false' to turn off debug output
ac.IsVerbose = true
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
//ac.SoftId = 1187
// Make sure the API key funds balance is positive
balance, err := ac.GetBalance()
if err != nil {
log.Fatal(err)
// Exit program to make sure you don't DDoS API with requests, while having empty balance
return
}
fmt.Println("Balance:", balance)
// Solve Turnstile without proxy
solution, err := ac.SolveTurnstile(anticaptcha.Turnstile{
WebsiteURL: "https://www.website.com/",
WebsiteKey: "0x4AAAAAAABD2Inoxs-yJ8bz",
//Action: "optional page action",
//CData: "cdata token for cloudflare",
//ChlPageData: "chlPageData token for cloudflare",
})
if err != nil {
log.Fatal(err)
}
fmt.Println("Turnstile Token:", solution)
// In case you need the worker's user-agent
fmt.Println("User-Agent:", ac.WorkersUserAgent)
}چگونه Cloudflare Turnstile را در PHP حل کنیم
//git clone https://github.com/anti-captcha/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");
//optional action parameter, search it in page source code
$api->setAction("login_register_or_else");
//optional cData and chlPageData token parameters for Cloudflare
//$api->setCData("token_value");
//$api->setChlPageData("token_value");
//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";
echo "worker's user-agent in case you need it:\n";
echo $api->getWorkersUserAgent()."\n";
}چگونه Cloudflare Turnstile را در Java حل کنیم
// GitHub: https://github.com/anti-captcha/anticaptcha-java
//
// Maven, add to pom.xml:
// <dependency>
// <groupId>com.anti-captcha</groupId>
// <artifactId>anticaptcha</artifactId>
// <version>1.0.0</version>
// </dependency>
//
// Gradle, add to build.gradle:
// implementation "com.anti-captcha:anticaptcha:1.0.0"
import com.anti_captcha.Api.TurnstileProxyless;
import com.anti_captcha.Helper.DebugHelper;
public class Main {
public static void main(String[] args) throws InterruptedException {
// Set to false to turn the debug output off
DebugHelper.setVerboseMode(true);
TurnstileProxyless api = new TurnstileProxyless();
api.setClientKey("YOUR_API_KEY_HERE");
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
api.setSoftId(0);
api.setWebsiteUrl("http://website.com/");
api.setWebsiteKey("0xAAAAAAAABBBBBBBCCCCCC");
// Optional page action
api.setAction("optional_page_action");
// Optionally specify cData and chlPageData tokens for Cloudflare pages
// api.setCData("cdata_token");
// api.setChlPageData("chlPageData_token");
// Make sure the API key funds balance is positive
Double balance = api.getBalance();
if (balance == null || balance <= 0) {
// Stop here to make sure you don't DDoS the API while having empty balance
DebugHelper.out("Balance error: " + api.getErrorMessage(), DebugHelper.Type.ERROR);
return;
}
DebugHelper.out("Balance: " + balance, DebugHelper.Type.SUCCESS);
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("Captcha token: " + api.getTaskSolution().getToken(), DebugHelper.Type.SUCCESS);
}
}
}چگونه Cloudflare Turnstile را در Kotlin حل کنیم
// GitHub: https://github.com/anti-captcha/anticaptcha-kotlin
//
// Gradle, add to build.gradle.kts:
// implementation("com.anti-captcha:anticaptcha-kotlin:1.0.0")
import com.anticaptcha.AnticaptchaClient
import com.anticaptcha.AnticaptchaException
import com.anticaptcha.ApiException
import com.anticaptcha.Turnstile
import kotlinx.coroutines.runBlocking
fun main(): Unit = runBlocking {
// Create the API client and set the API key
val ac = AnticaptchaClient(
apiKey = "YOUR_API_KEY_HERE",
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
softId = 0,
// Set to false to turn the debug output off
verbose = true,
)
try {
// Make sure the API key funds balance is positive
val balance = ac.getBalance()
if (balance <= 0) {
// Stop here to make sure you don't DDoS the API while having empty balance
System.err.println("Empty balance")
return@runBlocking
}
println("Balance: $balance")
val solution = ac.solveTurnstile(
Turnstile(
websiteUrl = "http://website.com/",
websiteKey = "0xAAAAAAAABBBBBBBCCCCCC",
// Optional page action
action = "optional_page_action",
// Optionally specify cData and chlPageData tokens for Cloudflare pages
// cData = "cdata_token",
// chlPageData = "chlPageData_token",
),
)
println("Captcha token: ${solution.token}")
} catch (error: ApiException) {
// https://anti-captcha.com/apidoc/errors
System.err.println("API error: ${error.errorCode} ${error.description}")
} catch (error: AnticaptchaException) {
System.err.println("Failed: ${error.message}")
}
}چگونه Cloudflare Turnstile را در C# حل کنیم
// GitHub: https://github.com/anti-captcha/anticaptcha-csharp.git
// install: dotnet add package AntiCaptchaOfficial
// or, in the Package Manager Console:
// Install-Package AntiCaptchaOfficial
using System;
using AntiCaptcha.Api;
using AntiCaptcha.Helper;
class Program
{
static void Main()
{
// Set to 'false' to turn off debug output
DebugHelper.VerboseMode = true;
var api = new TurnstileProxyless
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://website.com/"),
WebsiteKey = "0xAAAAAAAABBBBBBBCCCCCC",
// Optional page action
Action = "optional_page_action",
// Optionally specify cData and chlPageData tokens for Cloudflare pages
// CData = "cdata_token",
// ChlPageData = "chlPageData_token",
// Specify softId to earn 10% commission with your app.
// Get your softId here:
// https://anti-captcha.com/clients/tools/devcenter
SoftId = 0
};
// Make sure the API key funds balance is positive
var balance = api.GetBalance();
if (balance == null || balance <= 0)
{
// Exit the program to make sure you don't DDoS the API with requests while having empty balance
Console.WriteLine("Balance error: " + api.ErrorMessage);
return;
}
Console.WriteLine("Balance: " + balance);
var solution = api.Solve();
Console.WriteLine("Captcha token: " + solution?.Token);
}
}چگونه Cloudflare Turnstile را در C++ حل کنیم
// GitHub: https://github.com/anti-captcha/anticaptcha-cplus.git
// Add it to your CMake project:
// include(FetchContent)
// FetchContent_Declare(anticaptcha
// GIT_REPOSITORY https://github.com/anti-captcha/anticaptcha-cplus.git
// GIT_TAG v1.0.0)
// FetchContent_MakeAvailable(anticaptcha)
// target_link_libraries(your_app PRIVATE anticaptcha::anticaptcha)
#include <iostream>
#include <anticaptcha/anticaptcha.hpp>
int main() {
// Create the API client and set the API key
anticaptcha::Client ac("YOUR_API_KEY_HERE");
// Debug output is on by default, turn it off with:
// ac.shut_up();
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
ac.set_soft_id(0);
try {
// Make sure the API key funds balance is positive
const double balance = ac.get_balance();
if (balance <= 0) {
// Stop here to make sure you don't DDoS the API while having empty balance
std::cerr << "Empty balance" << std::endl;
return 1;
}
std::cout << "Balance: " << balance << std::endl;
anticaptcha::Turnstile params;
params.website_url = "http://website.com/";
params.website_key = "0xAAAAAAAABBBBBBBCCCCCC";
// Optional page action
params.action = "optional_page_action";
// Optionally specify cData and chlPageData tokens for Cloudflare pages
// params.c_data = "cdata_token";
// params.chl_page_data = "chlPageData_token";
const anticaptcha::Solution solution = ac.solve_turnstile(params);
std::cout << "Captcha token: " << solution.token() << std::endl;
} catch (const anticaptcha::ApiError& error) {
// https://anti-captcha.com/apidoc/errors
std::cerr << "API error: " << error.error_code() << " " << error.description() << std::endl;
return 1;
} catch (const anticaptcha::Error& error) {
std::cerr << "Failed: " << error.what() << std::endl;
return 1;
}
return 0;
}چگونه Cloudflare Turnstile را در Rust حل کنیم
// GitHub: https://github.com/anti-captcha/anticaptcha-rust
// Install with:
// cargo add anticaptchaofficial
// or add it to Cargo.toml:
// [dependencies]
// anticaptchaofficial = "1"
use anticaptcha::{Client, Turnstile};
#[tokio::main]
async fn main() -> anticaptcha::Result<()> {
// Create the API client and set the API key
let ac = Client::new("YOUR_API_KEY_HERE")
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
.with_soft_id(0);
// .quiet() turns the debug output off
// Make sure the API key funds balance is positive
let balance = ac.get_balance().await?;
if balance <= 0.0 {
// Stop here to make sure you don't DDoS the API while having empty balance
eprintln!("Empty balance");
return Ok(());
}
println!("Balance: {balance}");
let solution = ac
.solve_turnstile(&Turnstile {
website_url: "http://website.com/".into(),
website_key: "0xAAAAAAAABBBBBBBCCCCCC".into(),
// Optional page action
action: "optional_page_action".into(),
// Optionally specify cData and chlPageData tokens for Cloudflare pages
// c_data: "cdata_token".into(),
// chl_page_data: "chlPageData_token".into(),
..Default::default()
})
.await?;
println!("Captcha token: {}", solution.token());
Ok(())
}چگونه Cloudflare Turnstile را در Ruby حل کنیم
# GitHub: https://github.com/anti-captcha/anticaptcha-ruby
# Install with:
# gem install anticaptchaofficial
# or add it to your Gemfile:
# gem "anticaptchaofficial"
require "anticaptcha"
# Create the API client and set the API key
ac = Anticaptcha.new("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.soft_id = 0
# Set to false to turn the debug output off
ac.verbose = true
begin
# Make sure the API key funds balance is positive
balance = ac.balance
# Stop here to make sure you don't DDoS the API while having empty balance
abort "Empty balance" if balance <= 0
puts "Balance: #{balance}"
solution = ac.solve_turnstile(
website_url: "http://website.com/",
website_key: "0xAAAAAAAABBBBBBBCCCCCC",
# Optional page action
action: "optional_page_action"
# Optionally specify cData and chlPageData tokens for Cloudflare pages
# c_data: "cdata_token",
# chl_page_data: "chlPageData_token",
)
puts "Captcha token: #{solution.token}"
rescue Anticaptcha::ApiError => e
# https://anti-captcha.com/apidoc/errors
warn "API error: #{e.error_code} #{e.description}"
rescue Anticaptcha::Error => e
warn "Failed: #{e.message}"
endچگونه Cloudflare Turnstile را در bash حل کنیم
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",
"action":"optional_page_action",
"cData":"optional_cData_token_for_cloudflare",
"chlPageData":"optional_cData_token_for_cloudflare"
},
"softId": 0
}' https://api.anti-captcha.com/createTaskشیء راهحل وظیفه
| خصوصیت | نوع | هدف |
|---|---|---|
| token | رشته | رشته توکن که برای تعامل با فرم ارسال در وبسایت هدف لازم است. |
| userAgent | رشته | عامل کاربر مرورگر کارگر. هنگام ارسال توکن پاسخ از آن استفاده کنید. |
نمونه پاسخ
{
"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"
}