Распознавание hCaptcha

hCaptcha - это относительно новый вид капчи, который очень похож на reCAPTCHA V2, но имеет некоторые визуальных различия, хотя и очень похожий метод решения

Начать сейчас

Статистика рекапчи

YouTube's thumbnail image for the video.

Как распознать hCaptcha

  1. Откройте консоль разработчика в браузере и найдите элемент с атрибутом data-sitekey.
<div
  class="h-captcha"
  data-sitekey="3ceb8624-1970-4e6b-91d5-70317b70b651"
  id="hcaptcha"
></div>
  1. Отправьте эти параметры на RuCaptcha API.

Дождитесь результата. Он должен выглядеть примерно так:

P0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXNza2V5IjoiNGQ3MTI5ZmUtOTQxZi00NGQ4LWI5MzYtMzAwZjUyMmM3Yzc2IiwiZXhwIjoxNTY4MTA3MjY4LCJzaGFyZF9pZCI6MzAyMzQ1NDg4fQ.yJuANPBc1uzCw9tW6CoLqiijBgh6zF00KdsnqaJtugg
  1. В консоли разработчика найдите textarea с id="g-recaptcha-response", и вставте туда полученный код. Потом нажмите "Проверить".

PHP

// https://github.com/2captcha/2captcha-php

require(__DIR__ . '/../src/autoloader.php');

$solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');

try {
    $result = $solver->hcaptcha([
        'sitekey' => '3ceb8624-1970-4e6b-91d5-70317b70b651',
        'url'     => 'https://2captcha.com/demo/hcaptcha',
    ]);
} catch (\Exception $e) {
    die($e->getMessage());
}

die('Captcha solved: ' . $result->code);

Java

// https://github.com/2captcha/2captcha-java

package examples;

import com.twocaptcha.TwoCaptcha;
import com.twocaptcha.captcha.HCaptcha;

public class HCaptchaExample {

    public static void main(String[] args) {
        TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");

        HCaptcha captcha = new HCaptcha();
        captcha.setSiteKey("3ceb8624-1970-4e6b-91d5-70317b70b651");
        captcha.setUrl("https://2captcha.com/demo/hcaptcha");

        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 HCaptchaExample
    {
        public void Main()
        {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");

            HCaptcha captcha = new HCaptcha();
            captcha.SetSiteKey("3ceb8624-1970-4e6b-91d5-70317b70b651");
            captcha.SetUrl("https://2captcha.com/demo/hcaptcha");

            try
            {
                solver.Solve(captcha).Wait();
                Console.WriteLine("Captcha solved: " + captcha.Code);
            }
            catch (AggregateException e)
            {
                Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
            }
        }
    }
}

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)

try:
    result = solver.hcaptcha(
        sitekey='3ceb8624-1970-4e6b-91d5-70317b70b651',
        url='https://2captcha.com/demo/hcaptcha',
    )

except Exception as e:
    sys.exit(e)

else:
    sys.exit('solved: ' + str(result))

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.HCaptcha{
        SiteKey: "3ceb8624-1970-4e6b-91d5-70317b70b651",
        Url: "https://2captcha.com/demo/hcaptcha",   
    }
    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::hcaptcha_t cap;
cap.set_site_key ("3ceb8624-1970-4e6b-91d5-70317b70b651");
cap.set_url ("https://2captcha.com/demo/hcaptcha");

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

GithubПолная документация и код примеровПодробнее на ruCaptcha API

Стоимость решения

Стоимость распознавания очень низка, от RUB 0.16 за одну рекапчу. Для удобства, все цены указывается за распознавание 1000 рекапч, но биллинг в системе происходит отдельно по каждой рекапче. Разные типы рекапч распознаются по разной цене.

RUB 160.00

За 1000 рекапч

Поддерживаемые капчи

Простая капча

Процесс решения обычной капчи заключается в следующем: мы забираем изображение капчи со страницы ее размещения и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ, который необходимо ввести в соответствующее поле для решения капчи

API демонстрацияКак решить

Текстовая капча

Процесс решения текстовой капчи заключается в следующем: мы забираем текстовый вопрос капчи со страницы ее размещения и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ, который необходимо ввести в соответствующее поле для решения капчи

API демонстрацияКак решить

ClickCaptcha

Процесс решения заключается в следующем: мы забираем изображение капчи со страницы ее размещения и инструкцию, по каким картинкам необходимо кликать и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ в виде трех наборов координат размещения изображений, который необходимо ввести в соответствующее поле для решения капчи

API демонстрацияКак решить

Rotate Captcha

Процесс решения Rotate Captcha заключается в следующем: мы забираем изображение или несколько изображений капчи со страницы ее размещения и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ в виде значения угла поворота изображения, который необходимо ввести в соответствующее поле для решения капчи

API демонстрацияКак решить

reCAPTCHA V2

Процесс решения текстовой капчи заключается в следующем: мы забираем текстовый вопрос капчи со страницы ее размещения и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ, который необходимо ввести в соответствующее поле для решения капчи

API демонстрацияКак решить

reCAPTCHA V2 Callback

Процесс решения reCAPTCHA V2 заключается в следующем: мы забираем изображение капчи со страницы ее размещения в виде параметра data-sitekey и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ в виде токена, который необходимо ввести в соответствующее поле для решения капчи

API демонстрацияКак решить

reCAPTCHA V2 Invisible

Процесс решения reCAPTCHA V2 заключается в следующем: мы забираем изображение капчи со страницы ее размещения в виде параметра data-sitekey и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ в виде токена, который необходимо ввести в соответствующее поле для решения капчи

API демонстрацияКак решить

reCAPTCHA V3

Процесс решения reCAPTCHA V3 следующий: мы забираем изображение капчи со страницы ее размещения и передаем в сервис ruCaptcha, где ее решает работник с соответствующим рейтингом “человечности”, после чего нам возвращается ответ в виде токена, который необходимо ввести в соответствующее поле для решения капчи. Во многом новый вид капчи похож на reCAPTCHA V2, т.е. основной принцип остался тем же - пользователь получает от API ruCaptcha токен, который отправляется в POST-запросе к сайту, а сайт верифицирует токен через API ruCaptcha

API демонстрацияКак решить

KeyCaptcha

Процесс решения KeyCaptcha заключается в следующем: мы забираем набор необходимых параметров со страницы ее размещения и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ в виде набора уже других параметров, который необходимо передать в соответствующие поля для решения капчи

API демонстрацияКак решить

GeeTest

Процесс решения GeeTest Captcha заключается в следующем: мы забираем набор необходимых параметров со страницы ее размещения и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ в виде набора уже других параметров, который необходимо передать в соответствующие поля для решения капчи

API демонстрацияКак решить

hCaptcha

Процесс решения заключается в следующем: мы забираем изображение капчи со страницы ее размещения и передаем в сервис ruCaptcha, где ее решает работник, после чего нам возвращается ответ в виде токена, который необходимо ввести в соответствующее поле для решения капчи

API демонстрацияКак решить

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

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

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