Menu

حل‌کردن کپچای Turnstile با پروکسی

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

این نوع وظیفه به یک پروکسی نیاز دارد. لطفاً فقط اگر وظایف پروکسی خاموش (TurnstileTaskProxyless) موفق به انجام کار نمی‌شوند از آن استفاده کنید چون کار کارگران ما را کند می‌کند. حل کپچاهای دارای پروکسی نیاز به کیفیت بسیار بالای پروکسی‌هایی دارد که خودتان در سرورهای VPS خودتان نصب می‌کنید و هرگز نباید از خدمات پروکسی خریداری‌شده از جای دیگر استفاده کنید.

Turnstile captcha example
مثال کپچا
Python
Node.js
Go
PHP
Java
C#
bash

چگونه Cloudflare Turnstile proxy-on را در 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")

# Optionally specify page action
solver.set_action("login")

# 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 proxy-on را در 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.solveTurnstileProxyOn('http://DOMAIN.COM',
    'WEBSITE_KEY',
    'http', //http, socks4, socks5
    'PROXY_ADDRESS',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD',
    '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 proxy-on را در 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 with proxy
    solution, err := ac.SolveTurnstileProxyOn(anticaptcha.Turnstile{
        WebsiteURL: "https://www.website.com/",
        WebsiteKey: "0x4AAAAAAABD2Inoxs-yJ8bz",
        //Action: "optional page action",
        //CData: "cdata token for cloudflare",
        //ChlPageData: "chlPageData token for cloudflare",
        Proxy: &anticaptcha.Proxy{
            Type:      "http",
            IPAddress: "1.2.3.4",
            Port:      1234,
            Login:     "login-optional",
            Password:  "pass-optional",
        },
    })
    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 proxy-on را در PHP حل کنیم

//git clone https://github.com/anti-captcha/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");

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

// 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";
    echo "worker's user-agent in case you need it:\n";
    echo $api->getWorkersUserAgent()."\n";

}

چگونه Cloudflare Turnstile proxy-on را در Java حل کنیم

//git clone https://github.com/anti-captcha/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");

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

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

چگونه Cloudflare Turnstile proxy-on را در C# حل کنیم

//git clone https://github.com/anti-captcha/anticaptcha-csharp.git

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",
                // Optional page action
                Action = "optional_page_action",
                // Optionally specify cData and chlPageData tokens for Cloudflare pages
                // CData = "cdata_token",
                // ChlPageData = "chlPageData_token",
                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);

        }
    }
}

چگونه Cloudflare Turnstile proxy-on را در bash حل کنیم

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",
            "action":"optional_page_action",,
            "cData":"optional_cData_token_for_cloudflare",
            "chlPageData":"optional_cData_token_for_cloudflare",
            "proxyType":"http",
            "proxyAddress":"8.8.8.8",
            "proxyPort":8080,
            "proxyLogin":"proxyLoginHere",
            "proxyPassword":"proxyPasswordHere"
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask

شیء وظیفه

خصوصیت نوع ضروری هدف
type رشته بله TurnstileTask
websiteURL رشته بله آدرس صفحه وب هدف. می‌تواند در هرجایی از وب‌سایت حتی بخش اعضا قرار گرفته باشد. کارگران ما به آنجا نمی‌روند بلکه در عوض بازدید را شبیه‌سازی می‌کنند.
websiteKey رشته بله کلید سایت Turnstile
action رشته خیر پارامتر اختیاری "action".
cData رشته خیر توکن اختیاری "cData".
مقاله مرتبط: چگونه Cloudflare را دور بزنیم
chlPageData رشته خیر نشانه "Chlpagedata" اختیاری
proxyType رشته بله نوع پروکسی
، http – پروکسی عادی http/https
socks4- پروکسی socks4
، socks5 – پروکسی socks5
proxyAddress رشته بله آدرس IP پروکسی ipv4/ipv6. بدون نام میزبان یا آدرس‌های IP متعلق به شبکه‌های محلی
proxyPort عدد صحیح بله پورت (درگاه) پروکسی
proxyLogin رشته بله نام کاربری برای پروکسی که نیاز به احراز هویت دارد (پایه)
proxyPassword رشته بله رمز عبور پروکسی

شیء راه‌حل وظیفه

خصوصیت نوع هدف
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"
}