bản trình diễn Click CAPTCHA

Trang này giải thích cách hiển thị Click CAPTCHA và cách hoạt động của quá trình xác minh Click CAPTCHA. Phương pháp này cho phép bạn giải quyết bất kỳ hình ảnh xác thực nào yêu cầu nhấp vào hình ảnh, như Snapchat's Ghost reCAPTcha V2, ASIRRA, vân vân.

ví dụ về clickcaptcha
Logo của «Click CAPTCHA»

Trong nhiều trường hợp, Click CAPTCHA cản trở khả năng truy cập, làm người dùng thất vọng, hạn chế quyền truy cập vào thông tin mở, gây khó khăn cho việc thử nghiệm ứng dụng và trang web. Sử dụng bộ giải Click CAPTCHA để tự động bỏ qua.

How to solve ClickCaptcha

  1. Download the captcha image.

  2. Send image to our API.

    PHP

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->coordinates([
            'file' => 'path/to/captcha.jpg',
            'lang' => 'en',
        ]);
    } catch (\Exception $e) {
        die($e->getMessage());
    }
    
    die('Captcha solved: ' . $result->code);

    Python

    # https://github.com/2captcha/2captcha-python
    
    import sys
    import os
    
    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, defaultTimeout=120, pollingInterval=5)
    
    try:
        result = solver.coordinates('path/to/captcha.jpg',
                                    lang='en')
    except Exception as e:
        sys.exit(e)
    
    else:
        sys.exit('solved: ' + str(result))

    Java

    // https://github.com/2captcha/2captcha-java
    
    package examples;
    
    import java.io.File;
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.Coordinates;
    
    public class CoordinatesOptionsExample {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            Coordinates captcha = new Coordinates();
            captcha.setFile("path/to/captcha.jpg");
            captcha.setLang("en");
            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.IO;
    using System.Linq;
    using TwoCaptcha.Captcha;
    
    namespace TwoCaptcha.Examples {
        public class CoordinatesOptionsExample {
            public void Main() {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                Coordinates captcha = new Coordinates();
                captcha.SetFile("path/to/captcha.jpg");
                captcha.SetLang("en");
                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.Coordinates{
            File: "path/to/captcha.jpg",
            Lang: "en",
        }
        code, err := client.Solve(captcha.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)
    {
    if (ac < 2)
    {
        printf ("Usage: ./coordinates path/to/image.jpg\n");
        return 0;
    }
    
    api2captcha::curl_http_t http;
    http.set_verbose (true);
    
    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);
    
    assert (ac > 1);
    api2captcha::coordinates_t cap (av[1]);
    
    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;   
    }

    Ruby

    # https://github.com/2captcha/2captcha-ruby
    require 'api_2captcha'
    
    client =  Api2Captcha.new("YOUR_API_KEY")
    
    result = client.coordinates({
      image: 'path/to/captcha.jpg',
      lang: 'en',
      hint_image: 'path/to/hint.jpg',
      hint_text: 'Connect the dots'
    })

    Manually:

    1. Multipart sample form:

      <form method="post" action="https://2captcha.com/in.php" enctype="multipart/form-data">
          <input type="hidden" name="method" value="post">
          <input type="hidden" name="coordinatescaptcha" value="1">
          Your key:
          <input type="text" name="key" value="YOUR_APIKEY">
          ClickCaptcha file:
          <input type="file" name="file">
          <input type="submit" value="Upload and get the ID">
      </form>
    2. If everything is fine server will return the ID of your captcha:

      OK|2122988149
      Otherwise server will return an error code.

    3. After 5 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 token:

      OK|coordinates:x=127,y=69;x=131,y=207;x=133,y=133
      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. Click on the image using the coordinates obtained in the answer.