GeeTest демо

GeeTest - это такой вид капчи, где требуется передвинуть кусок пазла или выбрать несколько объектов в нужном порядке.

Загрузка GeeTest...
назадНазад к списку капч

Как решить GeeTest

  1. Найдите следующие параметры GeeTest на странице (обычно их можно найти внутри функции initGeetest):
    gt - публичный ключ сайта (статический)
    challenge - динамический ключ задания
    api_server - домен API (обязателен для некоторых сайтов)

    Важно: для каждого запроса к нашему API необходимо получать новое значение challenge. Если капча уже была загружена на странице, то значение challenge является недействительным. Вам необходимо изучить запросы, которые выполняются при загрузке страницы и найти тот, в котором возвращается значение challenge. Затем, для получения нового challenge вам нужно каждый раз выполнять данный запрос и парсить его.

  2. Отправьте эти параметры на наш API.

    Используя SDK (рекомендовано):

    PHP

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->geetest([
            'gt'        => 'f2ae6cadcf7886856696502e1d55e00c',
            'apiServer' => 'api.geetest.com',
            'challenge' => '12345678abc90123d45678ef90123a456b',
            'url'       => 'https://rucaptcha.com/demo/geetest',
        ]);
    } catch (\Exception $e) {
        die($e->getMessage());
    }
    
    die('Captcha solved: ' . $result->code);

    Python

    # https://github.com/2captcha/2captcha-python
    
    import sys
    import os
    import requests
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
    
    from twocaptcha import TwoCaptcha
    
    api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
    
    solver = TwoCaptcha(api_key)
    
    resp = requests.get("http://rucaptcha.com/demo/geetest")
    challenge = resp.content.decode('utf-8').split(';')[0]
    
    try:
        result = solver.geetest(gt='f3bf6dbdcf7886856696502e1d55e00c',
                                apiServer='api.geetest.com',
                                challenge=challenge,
                                url='https://rucaptcha.com/demo/geetest')
    
    except Exception as e:
        sys.exit(e)
    
    else:
        sys.exit('solved: ' + str(result))

    Java

    // https://github.com/2captcha/2captcha-java
    
    package examples;
    
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.GeeTest;
    
    public class GeeTestExample {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            GeeTest captcha = new GeeTest();
            captcha.setGt("f2ae6cadcf7886856696502e1d55e00c");
            captcha.setApiServer("api.geetest.com");
            captcha.setChallenge("12345678abc90123d45678ef90123a456b");
            captcha.setUrl("https://rucaptcha.com/demo/geetest");
            try {
                solver.solve(captcha);
                System.out.println("Captcha solved: " + captcha.getCode());
            } catch (Exception e) {
                System.out.println("Error occurred: " + e.getMessage());
            }
        }
    }

    C#

    // https://github.com/2captcha/2captcha-csharp
    
    using System;
    using System.Linq;
    using TwoCaptcha.Captcha;
    
    namespace TwoCaptcha.Examples
    {
        public class GeeTestExample
        {
            public void Main()
            {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                GeeTest captcha = new GeeTest();
                captcha.SetGt("f2ae6cadcf7886856696502e1d55e00c");
                captcha.SetApiServer("api.geetest.com");
                captcha.SetChallenge("12345678abc90123d45678ef90123a456b");
                captcha.SetUrl("https://rucaptcha.com/demo/geetest");
                try
                {
                    solver.Solve(captcha).Wait();
                    Console.WriteLine("Captcha solved: " + captcha.Code);
                }
                catch (AggregateException e)
                {
                    Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
                }
            }
        }
    }

    Go

    // https://github.com/2captcha/2captcha-go
    
    package main
    
    import (
        "fmt"
        "log"
        "github.com/2captcha/2captcha-go"
    )
    
    func main() {
        client := api2captcha.NewClient("API_KEY")
        cap := api2captcha.GeeTest{
            GT: "f2ae6cadcf7886856696502e1d55e00c",
            ApiServer: "api.geetest.com",
            Challenge: "12345678abc90123d45678ef90123a456b",
            Url: "https://rucaptcha.com/demo/geetest",
        }
        code, err := client.Solve(cap.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }

    C++

    // https://github.com/2captcha/2captcha-cpp
    
    #include <cstdio>
    
    #include "curl_http.hpp"
    #include "api2captcha.hpp"
    
    int main (int ac, char ** av)
    {
    api2captcha::curl_http_t http;
    http.set_verbose (true);
    
    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);
    
    api2captcha::geetest_t cap;
    cap.set_gt ("f2ae6cadcf7886856696502e1d55e00c");
    cap.set_api_server ("api.geetest.com");
    cap.set_challenge ("12345678abc90123d45678ef90123a456b");
    cap.set_url ("https://rucaptcha.com/demo/geetest");
    
    try
    {
        client.solve (cap);
        printf ("code '%s'\n", cap.code ().c_str ());
    }
    catch (std::exception & e)
    {
        fprintf (stderr, "Failed: %s\n", e.what ());
    }
    
    return 0;   
    }

    Вручную:

    1. Отправьте GET или POST запрос на наш API URL: https://rucaptcha.com/in.php с параметрами из предыдущего шага.
      Пример запроса:

      https://rucaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=geetest&gt=929c4274113891610f91fecd8f98f84a&challenge=12345678abc90123d45678ef90123a456b&api_server=api-na.geetest.com&pageurl=http://rucaptcha.com/demo/geetest
    2. Если вы отправили корректный запрос, сервер вернёт ID вашей капчи:

      OK|2122988149

      В противном случае сервер вернет ошибку.

    3. Через 15-20 секунд отправьте GET запрос чтобы получить результат:

      GET https://rucaptcha.com/res.php?key=YOUR_API_KEY&action=get&id=2122988149

      Если ваша капча уже решена, сервер вернёт ответ на неё.

      Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд. Если что-то пошло не так, сервер вернёт ошибку.

  3. Если капча уже решена, сервер вернёт ответ в формате JSON. Ответ содержит три параметра: challenge, validate and seccode:

    {
        "challenge": "1a2b3456cd67890e12345fab678901c2de",
        "validate": "09fe8d7c6ba54f32e1dcb0a9fedc8765",
        "seccode": "12fe3d4c56789ba01f2e345d6789c012|jordan"
    }
  4. Используйте значения, полученные в ответе от нашего API в запросе к сайту, передавая их в соотстветствующих полях запроса:
    geetest_challenge
    geetest_validate
    geetest_seccode

  5. Нажмите кнопку "Проверить".

Как решить GeeTest

Looking for international version of our service? Go to 2captcha.com

Уведомление об использовании файлов cookie

Этот сайт использует cookie. Файлы cookie запоминают вас, поэтому мы можем предоставить вам персонализированные услуги. Подробнее.