Логотип «GitHub»

Normal CAPTCHA

Captcha image

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

Тип задачи: ImageToTextTask

Этот метод используется для получения текста из искаженных изображений с капчей. Изображения должны быть закодированы в Base64 формат.

Поддерживаемые форматы изображений: JPEG, PNG, GIF
Максимальный размер файла: 100 kB
Максимальный размер изображения: 600px пикселей с любой стороны

Спецификация для типа задачи ImageToTextTask

Свойство Тип Обязателен По умолчанию Описание
type Строка Да ImageToTextTask Тип задачи
body Строка Да Изображение закодированное в формате Base64. Также поддерживается формат Data-URI (содержащий префикс data:content/type)
phrase Логический Нет false false - не указан
true - ответ должен содержать как минимум два слова, разделенных пробелом.
case Логический Нет false false - не указан
true - результат чувствителен к регистру
numeric Число Нет 0 0 - не указан
1 - ответ должен содержать только цифры
2 - ответ должен содержать только буквы
3 - ответ должен содержать только цифры ИЛИ только буквы
4 - ответ ДОЛЖЕН содержать как цифры, так И буквы
math Логический Нет false false - не указан
true - капча требует вычисления
minLength Число Нет 0 0 - не указан
>=1 - определяет минимальную длину ответа
maxLength Число Нет 0 0 - не указан
>=1 - определяет максимальную длину ответа
comment Строка Нет Работникам будет показан комментарий, который поможет им правильно разгадать капчу
imgInstructions Строка Нет Дополнительное изображение с инструкцией, которое будет показано работникам. Изображение должно быть закодировано в формат Base64.

Пример запроса

Метод: createTask
Эндпоинт API: https://api.2captcha.com/createTask

{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "ImageToTextTask",
        "body": "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
        "phrase": false,
        "case": true,
        "numeric": 0,
        "math": false,
        "minLength": 1,
        "maxLength": 5,
        "comment": "введите текст, который вы видите на изображении"
    },
    "softId": "3898",
    "languagePool": "rn"
}

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

Метод: getTaskResult
Эндпоинт API: https://api.2captcha.com/getTaskResult

{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "text": "Привет, мир"
    },
    "cost": "0.00025",
    "ip": "1.2.3.4",
    "createTime": 1692808229,
    "endTime": 1692808326
}

Примеры кода

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

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

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

  try {
      $result = $solver->normal('path/to/captcha.jpg');
  } catch (\Exception $e) {
      die($e->getMessage());
  }

  die('Captcha solved: ' . $result->code);
# 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.normal('path/to/captcha.jpg')

except Exception as e:
  sys.exit(e)

else:
  sys.exit('solved: ' + str(result))
  // https://github.com/2captcha/2captcha-csharp

  using System;
  using System.Linq;
  using TwoCaptcha.Captcha;

  namespace TwoCaptcha.Examples
  {
      public class NormalExample
      {
          public static void Main()
          {
              var solver = new TwoCaptcha("YOUR_API_KEY");
              Normal captcha = new Normal("path/to/captcha.jpg");
              try
              {
                  solver.Solve(captcha).Wait();
                  Console.WriteLine("Captcha solved: " + captcha.Code);
              }
              catch (AggregateException e)
              {
                  Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
              }
          }
      }
  }
  // https://github.com/2captcha/2captcha-java

  package examples;

  import com.twocaptcha.TwoCaptcha;
  import com.twocaptcha.captcha.Normal;

  public class NormalExample {
      public static void main(String[] args) {
          TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
          Normal captcha = new Normal("path/to/captcha.jpg");
          try {
              solver.solve(captcha);
              System.out.println("Captcha solved: " + captcha.getCode());
          } catch (Exception e) {
              System.out.println("Error occurred: " + e.getMessage());
          }
      }

  }
  // 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.Normal{
          File: "/path/to/captcha.jpg",
      }
      code, err := client.Solve(captcha.ToRequest())
      if err != nil {
          log.Fatal(err);
      }
      fmt.Println("code "+code)
  }
  require 'api_2captcha'

  client =  Api2Captcha.new("YOUR_API_KEY")

  result = client.normal({ image: 'path/to/captcha.jpg'})
  # OR
  result = client.normal({
  image: 'https://site-with-captcha.com/path/to/captcha.jpg'
  })