Démonstration de GeeTest CAPTCHA V4

Cette page explique comment GeeTest CAPTCHA V4 s'affiche et comment fonctionne la vérification de GeeTest CAPTCHA V4. GeeTest V4 est un type de captcha où vous devez déplacer une pièce d'un puzzle ou sélectionner certains chiffres dans l'ordre.

Chargement de GeeTest V4...
Logo de "GeeTest CAPTCHA V4"

Dans de nombreux cas, GeeTest CAPTCHA V4 entrave l'accessibilité, frustre les utilisateurs, limite l'accès aux informations ouvertes, rend difficile le test des applications et des sites. Utilisez le solveur GeeTest CAPTCHA V4 pour un contournement automatique.

How to solve GeeTest v4

  1. Open developer's console in your browser and find script element that loads the GeeTest v4 script, you need to grab the captcha_id parameter value from the script src attribute.

    An example of a script element from the page:

    <script  src="https://gcaptcha4.geetest.com/load?captcha_id=e392e1d7fd421dc63325744d5a2b9c73&amp;challenge=36056b4d-7453-4153-aaa7-67ac27ccae9c&amp;client_type=web&amp;lang=en&amp;callback=geetest_1679073111173"></script>
  2. Send captcha_id and pageurl to 2Captcha API.

    PHP

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->geetest_v4([
          'captchaId' => '42977dc9-a215-4b09-aa14-945ef310d829',
          'url'       => 'https://2captcha.com/demo/geetest-v4',
      ]);
    } 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)
    
    try:
        result = solver.geetest_v4(captcha_id='42977dc9-a215-4b09-aa14-945ef310d829',
                                   url='https://2captcha.com/demo/geetest-v4')
    
    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.GeeTestV4;
    
    public class GeeTestV4Example  {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            GeeTestV4 captcha = new GeeTestV4();
            captcha.setCaptchaId("42977dc9-a215-4b09-aa14-945ef310d829");
            captcha.setUrl("https://2captcha.com/demo/geetest-v4");
            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 GeeTestV4Example
        {
            public void Main()
            {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                GeeTestV4 captcha = new GeeTestV4();
                captcha.SetCaptchaId("42977dc9-a215-4b09-aa14-945ef310d829");
                captcha.SetUrl("https://2captcha.com/demo/geetest-v4");
                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")
        captcha := api2captcha.GeeTestV4{
            CaptchaId: "42977dc9-a215-4b09-aa14-945ef310d829",
            Url: "https://2captcha.com/demo/geetest-v4",
        }
        code, err := client.Solve(captcha.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }

    Ruby

    # https://github.com/2captcha/2captcha-ruby
    require 'api_2captcha'
    
    client =  Api2Captcha.new("YOUR_API_KEY")
    
    result = client.geetest_v4({
      captcha_id: '42977dc9-a215-4b09-aa14-945ef310d829',
      pageurl: 'https://2captcha.com/demo/geetest-v4'
    })

    Manually:

    1. Submit a HTTP GET or POST request to our API URL: https://2captcha.com/in.php with method set to geetest_v4 providing values found on previous step in your request as values for corresponding request parameters and also full page URL as value for pageurl.

      Request URL example:
      https://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=geetest_v4&captcha_id=42977dc9-a215-4b09-aa14-945ef310d829&&pageurl=http://2captcha.com/demo/geetest-v4

    2. If everything is fine server will return the ID of your captcha:

      OK|2122988149
      Otherwise server will return an error code.

    3. After 15-20 seconds send GET request to get the result:

      GET https://2captcha.com/res.php?key=YOUR_API_KEY&action=get&id=2122988149
      If captcha is already solved server will respond with the answer.

      If captcha is not solved yet server will return CAPCHA_NOT_READY result. Repeat your request in 5 seconds. If something went wrong server will return an error code.

  3. If captcha is already solved server will return the response in JSON. The response contains five values: captcha_id, lot_number, pass_token, gen_time and captcha_output:

    {
    "captcha_id":"e392e1d7fd421dc63325744d5a2b9c73",
    "lot_number":"81c1ed8e35be4f67a00bf30b578e873a",
    "pass_token":"0b088f4a5c742a912c0cfa2f98cd8e4fb4bd6a0c9389272ea5beac93f632d4e9",
    "gen_time":"1687352616",
    "captcha_output":"fN36ufW6cQN-UMXTCVLbps254G0c0ZnGN5368O2A5_SaEYV9-8U0kUUT-Of9xrdwrV6xLd8XZLJSs6jiWdyZaVBcG0kIoKkl6Bq4IKg0mlQ-zmEgqq1jSwPIEl34mhUMCq3Xmfj2E-H4_kyh-UjSkPSMMTumf97Fe7PFhZJJfui-731XLBFR7WwJsY8S9BXNKtMzQDp7zUWDZjxGxWyC8n1G3Q5jk7oV4ez9zcmF6PymY_sHj3kFyCoa8q9o8FTp"
    }
  4. Use the values returned on your target website the same way they’re used once you solve the captcha manually. There can be a form with a set of hidden inputs or a JavaScript callback. Or you can simply build a HTTP requests with the required data.

  5. Click on "Check" button to submit the form.