Menu

Решить капчу от GeeTest через прокси

Этот тип задач решает капчу GeeTest в браузере наших работников. Ваше приложение присылает адрес сайта, ключ gt, ключи challenge и после решения задачи получает решение, состоящее из трех токенов. У 4-й версии результат состоит из 5-ти значений и параметр challenge не требуется.

GeeTest captcha example
GeeTest captcha example
GeeTest captcha example

Geetest Checkbox example
GeeTest captcha example
GeeTest captcha example
GeeTest captcha example
GeeTest captcha example
Примеры
v3
v4
Python
Node.js
Go
PHP
Java
C#
bash

Как решить Geetest V4 proxy-on на Python

#pip3 install anticaptchaofficial

from anticaptchaofficial.geetestproxyon import *

solver = geetestProxyon()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://address.com")
solver.set_gt_key("captchaId value")
solver.set_version(4)

# optional API subdomain, make sure you understand what to set here
# solver.set_js_api_domain("custom-domain.geetest.com")

# optional initialization parameters
# solver.set_init_parameters({"riskType": "slide"})

solver.set_proxy_address("PROXY_ADDRESS")
solver.set_proxy_port(1234)
solver.set_proxy_login("proxylogin")
solver.set_proxy_password("proxypassword")
solver.set_user_agent("Mozilla/5.0")

# 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("result tokens: ")
    print(token)
    # user-agent in case you need it:
    print("user-agent: "+solver.get_user_agent())
else:
    print("task finished with error "+solver.error_code)

Как решить Geetest V4 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.solveGeeTestV4ProxyOn('http://DOMAIN.COM',
    'captchaId',
    'API_SUBDOMAIN',
    {
        "riskType": "slide"
    },
    'http', //http, socks4, socks5
    'PROXY_ADDRESS',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD',
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116',
    'some=cookies')
    .then(result => {
        console.log('result: ');
        console.log(result);
    })
    .catch(error => console.log('test received error '+error));

// in case you need it
console.log("worker's user-agent:");
console.log(ac.getUserAgent());

Как решить Geetest V4 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 Geetest with proxy
    solution, err := ac.SolveGeeTestProxyOn(anticaptcha.Turnstile{
        WebsiteURL: "https://bitget.com/",
        Gt:         "e9ca9c9ca19ad540a8017f5c107b2d0f",
        Version:    4,
        InitParameters: map[string]interface{}{
            "riskType": "slide",
        },
        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("Captcha Solution:", solution)
    // In case you need the worker's user-agent
    fmt.Println("User-Agent:", ac.WorkersUserAgent)
}

Как решить Geetest V4 proxy-on на PHP

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

include("anticaptcha.php");
include("geetest.php");

$api = new GeeTest();
$api->setVerboseMode(true);
$api->setWebsiteURL("https://www.geetest.com/en/adaptive-captcha-demo");
$api->setGTKey("fcd636b4514bf7ac4143922550b3008b");
$api->setVersion(4);
$api->setInitParameters([
    "riskType": "slide"
]);

//optional API subdomain, make sure you understand what to set here
$api->setAPISubdomain("optional.subdomain.api.geetest.com");

//proxy access parameters
$api->setProxyType("http");
$api->setProxyAddress("8.8.8.8");
$api->setProxyPort(1234);
//optional login and password
$api->setProxyLogin("login");
$api->setProxyPassword("password");

//your anti-captcha.com account key
$api->setKey("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);


//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 {

    echo "your geetest tokens:\n";
    print_r($api->getTaskSolution());
    echo "worker's user-agent in case you need it:\n";
    echo $api->getWorkersUserAgent()."\n";

}

Как решить Geetest V4 proxy-on на Java

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

package com.anti_captcha;

import com.anti_captcha.Api.GeeTestProxyless;
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);

        GeeTest api = new GeeTestV4();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setWebsiteUrl(new URL("https://auth.geetest.com/"));
        api.setWebsiteKey("b6e21f90a91a3c2d4a31fe84e10d0442");

        //optional API subdomain, make sure you understand what to set here
        //api.setGeetestApiServerSubdomain("optional.subdomain.api.geetest.com");

        // optional initialization parameters
        JSONObject additionalInitParameters = new JSONObject();
        try {
            additionalInitParameters.put("riskType", "ai");
        } catch (Exception e) {
            DebugHelper.out("JSON error: "+e.getMessage(), DebugHelper.Type.ERROR);
            return;
        }
        api.setInitParameters(additionalInitParameters);

        // proxy access parameters
        // DO NOT USE PURCHASED/RENTED PROXIES WITH PROXY SERVICES!!!
        api.setProxyType(RecaptchaV2.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 captcha_id: " + api.getTaskSolution().getCaptchaId(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result lot_number: " + api.getTaskSolution().getLotNumber(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result pass_token: " + api.getTaskSolution().getPassToken(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result gen_time: " + api.getTaskSolution().getGenTime(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result captcha_output: " + api.getTaskSolution().getCaptchaOutput(), DebugHelper.Type.SUCCESS);
        }
    }

}

Как решить Geetest V4 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 GeeTestV4Proxyless()
            {
                ClientKey = ClientKey,
                WebsiteUrl = new Uri("http://www.supremenewyork.com"),
                WebsiteKey = "b6e21f90a91a3c2d4a31fe84e10d0442",
                UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116",
                // proxy access parameters
                ProxyType = AnticaptchaBase.ProxyTypeOption.Http,
                ProxyAddress = "xx.xx.xx.xx",
                ProxyPort = 8282,
                ProxyLogin = "123",
                ProxyPassword = "456",

                // Specify softId to earn 10% commission with your app.
                // Get your softId here:
                // https://anti-captcha.com/clients/tools/devcenter
                SoftId = 0
            };

            api.initParameters.Add("riskType", "slide");

            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 CaptchaId: " + api.GetTaskSolution().CaptchaId, DebugHelper.Type.Success);
                DebugHelper.Out("Result LotNumber: " + api.GetTaskSolution().LotNumber, DebugHelper.Type.Success);
                DebugHelper.Out("Result PassToken: " + api.GetTaskSolution().PassToken, DebugHelper.Type.Success);
                DebugHelper.Out("Result GenTime: " + api.GetTaskSolution().GenTime, DebugHelper.Type.Success);
                DebugHelper.Out("Result CaptchaOutput: " + api.GetTaskSolution().CaptchaOutput, DebugHelper.Type.Success);
            }

        }
    }
}

Как решить Geetest V4 proxy-on на bash

curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"GeeTestTask",
            "websiteURL":"http://mywebsite.com/geetest/test.php",
            "gt":"874703612e5cac182812a00e273aad0d",
            "version":4,
            "initParameters": {
              "riskType": "slide"
            }
            "proxyType":"http",
            "proxyAddress":"8.8.8.8",
            "proxyPort":8080,
            "proxyLogin":"proxyLoginHere",
            "proxyPassword":"proxyPasswordHere",
            "userAgent":"MODERN_USER_AGENT_HERE"
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask

Объект задачи

Свойство Тип Требуется Назначение
type Строка Да GeeTestTask
websiteURL Строка Да Адрес целевой страницы. Может находиться в любом месте сайта, в том числе в закрытом для подписчиков разделе. Наши работники не посещают сайт, а вместо этого эмулируют посещение страницы.
gt Строка Да Публичный ключ домена, редко обновляется.
challenge Строка Да Меняющийся ключ. Убедитесь, что получаете каждый раз новый ключ для каждой капчи, иначе вы будете платить за каждую капчу с ошибкой.
geetestApiServerSubdomain Строка Нет Опциональный поддомен API. Может потребоваться для некоторых имплементаций.
GeeTest V3 example
version Integer Нет Номер версии. Значение по-умолчанию 3. Поддерживаются версии 3 и 4.
initParameters Объект Нет Дополнительные параметры инициализации для версии 4
proxyType Строка Да Тип прокси
http – обычные http/https прокси
socks4 – socks4 прокси
socks5 – socks5 прокси
proxyAddress Строка Да Адрес прокси в ipv4/ipv6. Имена хостов или адреса из локальной сети не допускаются.
proxyPort Integer Да Порт прокси
proxyLogin Строка Да Логин, если требуется авторизация прокси (basic)
proxyPassword Строка Да Пароль прокси
userAgent Строка Да Сообщите User Agent вашего приложения, чтобы наши работники решали капчу с тем же юзерагентом.
v3
v4

Объект решения задачи

Свойство Тип Назначение
captcha_id Строка Часть составного токена
lot_number Строка Часть составного токена
pass_token Строка Часть составного токена
gen_time Integer Часть составного токена
captcha_output Строка Часть составного токена
userAgent Строка User-Agent браузера работника. Используйте его, когда отправляете форму с токеном.

Пример ответа

{
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "captcha_id": "fcd636b4514bf7ac4143922550b3008b",
        "lot_number": "354ab6dd4e594fdc903074c4d8d37b24",
        "pass_token": "b645946a654e60218c7922b74b3b5ee8e8717e8fd3cd5182a5c98d660bbd1ed5",
        "gen_time": "1649921519",
        "captcha_output": "cFPIALDXSop8Ri2mPABbRWzNBs86N8D4vNUTuVa7wN7E...[cut]...ciM50ePCCzLBZ1bmaV9Yt7IkkFI9Emx4eaP8rRoA==",
        "userAgent":"Mozilla\5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}