Trang chủ Tài liệu Hướng dẫn Đăng nhập
Loại tác vụ được hỗ trợ
Phương thức API
Bài viết
Hướng dẫn
GitHub
Menu tài liệu

Giải quyết hình ảnh xác thực của Turnstile qua proxy - TurnstileTask

Hình ảnh xác thực chuyển đổi là một nỗ lực khác để thay thế Recaptcha. Chúng tôi hỗ trợ tất cả các kiểu phụ của nó một cách tự động: thủ công, không tương tác và vô hình. Không cần chỉ định kiểu con. Ngoài ra, việc cung cấp Tác nhân người dùng tùy chỉnh của riêng bạn là không cần thiết và sẽ không hoạt động.

Loại tác vụ này yêu cầu một proxy. Vui lòng chỉ sử dụng nó nếu các tác vụ tắt proxy (TurnstileTaskProxyless) không thành công, vì nó làm chậm nhân viên của chúng tôi. Việc giải mã captcha bằng proxy cũng yêu cầu chất lượng siêu cao của proxy mà bạn nên tự cài đặt trên máy chủ VPS của riêng mình và không bao giờ sử dụng các dịch vụ proxy đã mua. Để tìm hiểu thêm, vui lòng tham khảo phần Câu hỏi thường gặp này về proxy.

Ví dụ về Captcha

Đối tượng tác vụ

Thuộc tính Loại Bắt buộc Mục đích
type Chuỗi TurnstileTask
websiteURL Chuỗi Địa chỉ trang web mục tiêu. Có thể ở bất kỳ đâu trên trang web, ngay cả trong khu vực thành viên. Nhân viên chúng tôi không điều hướng đến khu vực đó mà chỉ giả lập việc truy cập.
websiteKey Chuỗi Khóa trang web xoay
proxyType Chuỗi Loại proxy
http - proxy http/https thường
socks4 - socks4 proxy
socks5 - socks5 proxy
proxyAddress Chuỗi Địa chỉ IP Proxy ipv4/ipv6. Không có tên máy chủ hoặc địa chỉ IP từ mạng cục bộ.
proxyPort Số nguyên Cổng proxy
proxyLogin Chuỗi Không Thông tin đăng nhập cho proxy yêu cầu cấp phép (cơ bản)
proxyPassword Chuỗi Không Mật khẩu proxy

Ví dụ về yêu cầu

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

        

Ví dụ về phản hồi

JSON không lỗi
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON có lỗi
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

Truy xuất lời giải

Sử dụng phương thức getTaskResult để yêu cầu giải. Cho nhân viên một khoảng thời gian, chẳng hạn như 5 giây, trước khi tạo yêu cầu đầu tiên. Nếu nhân viên vẫn bận, hãy thử lại sau 3 giây.

Đối tượng giải của tác vụ

Thuộc tính Loại Mục đích
token Chuỗi Chuỗi mã thông báo bắt buộc để tương tác với biểu mẫu gửi trên trang web mục tiêu.
userAgent Chuỗi Tác nhân người dùng của trình duyệt của nhân viên. Sử dụng nó khi bạn gửi mã thông báo phản hồi.

Ví dụ về phản hồi

JSON không lỗi
          {
    "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"
}