Логотип «2Captcha»Перейти на главную страницу
Туториалы по обходу капчи

Эта статья была полезной?

Как обойти 2chan капчу

Катя Пушкарёва

Технический специалист

Введение

Это руководство для разработчиков, которые сталкиваются с текстовой капчей на 4chan и хотят автоматизировать её решение через API 2Captcha.

Мы разберём, как получить изображение капчи, отправить его на распознавание, получить ответ и подставить результат в форму. Всё с готовыми примерами кода и пояснениями.

Что понадобится:

  • Аккаунт 2Captcha с доступом к API
  • Баланс для оплаты решений
  • Любая среда для кода: терминал с Python или Node.js, браузер с консолью

1. Текстовая капча на 4chan: как это работает

1.1. Когда появляется текстовая капча

На некоторых досках 4chan, особенно при использовании Tor или VPN, вместо пазл-слайдера показывается классическая капча с искажённым текстом. Это изображение с набором символов, которые нужно ввести в поле формы.

1.2. Поддержка через API 2Captcha

Этот тип капчи полностью поддерживается методом ImageToTextTask. API принимает изображение в двух форматах:

Формат Пример Когда использовать
Чистая base64-строка iVBORw0KGgoAAAANSUhEUg... Если извлекаешь данные вручную
Data URI data:image/png;base64,iVBORw0KGgoAAAANSUhEUg... Если берёшь src из тега img

Можно использовать любой вариант, результат будет одинаковым.

1.3. Ограничения метода

  • Размер изображения не больше 100 кБ
  • Ширина и высота не больше 1000 пикселей
  • Поддерживаются латинские символы и цифры
  • Время решения обычно 5,15 секунд

2. Пошаговая настройка

2.1. Шаг 1: получить изображение капчи

Найди в коде страницы элемент с картинкой капчи:

html Copy
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..." />

Извлеки значение атрибута src:

js Copy
const captchaData = document.querySelector('img.captcha').src; // полный data URI

💡 Совет: если в src только путь к файлу, а не data URI, сделай запрос к этому пути и конвертируй ответ в base64.

2.2. Шаг 2: отправить задачу в API

Создай задачу типа ImageToTextTask:

http Copy
POST https://api.2captcha.com/createTask
Content-Type: application/json
json Copy
{
  "clientKey": "ВАШ_API_КЛЮЧ",
  "task": {
    "type": "ImageToTextTask",
    "body": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...",
    "phrase": false,
    "case": false,
    "numeric": 0,
    "math": false,
    "minLength": 4,
    "maxLength": 6
  },
  "languagePool": "en"
}

📌 Параметры задачи:

  • phrase: ставь true, если капча содержит несколько слов
  • case: ставь true, если важен регистр символов
  • numeric: 0,1 или 2, если капча содержит только цифры
  • math: ставь true, если нужно решить пример
  • minLength и maxLength: задай ожидаемую длину ответа

2.3. Шаг 3: получить результат

Сохрани taskId из ответа и начни опрашивать статус:

http Copy
POST https://api.2captcha.com/getTaskResult
json Copy
{
  "clientKey": "ВАШ_API_КЛЮЧ",
  "taskId": "ID_ЗАДАЧИ"
}

Подожди 5 секунд после создания задачи, затем опрашивай каждые 3 секунды до статуса ready.

Пример успешного ответа:

json Copy
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "text": "K7aQ9"
  }
}

2.4. Шаг 4: вставить ответ в форму

Заполни поле капчи на странице 4chan:

js Copy
document.querySelector('input[name="captcha_response"]').value = "K7aQ9";

После этого отправь форму как обычно.

2.5. Шаг 5: сообщить об ошибке

Если результат распознан неверно, отправь жалобу:

http Copy
POST https://api.2captcha.com/reportIncorrectResult
json Copy
{
  "clientKey": "ВАШ_API_КЛЮЧ",
  "taskId": "ID_ЗАДАЧИ"
}

Это поможет улучшить качество решений в будущем.


3. Готовые примеры для теста

3.1. JavaScript: полный цикл в браузере

js Copy
// Шаг 1: получить изображение
const captchaData = document.querySelector('img.captcha').src;

// Шаг 2: создать задачу
const createResponse = await fetch('https://api.2captcha.com/createTask', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    clientKey: 'ВАШ_API_КЛЮЧ',
    task: {
      type: 'ImageToTextTask',
      body: captchaData,
      phrase: false,
      case: false,
      numeric: 0,
      math: false,
      minLength: 4,
      maxLength: 6
    },
    languagePool: 'en'
  })
});
const { taskId } = await createResponse.json();

// Шаг 3: опрос результата
let solution;
while (true) {
  await new Promise(r => setTimeout(r, 3000));
  const resultResponse = await fetch('https://api.2captcha.com/getTaskResult', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      clientKey: 'ВАШ_API_КЛЮЧ',
      taskId
    })
  });
  const result = await resultResponse.json();
  if (result.status === 'ready') {
    solution = result.solution.text;
    break;
  }
}

// Шаг 4: вставить в форму
document.querySelector('input[name="captcha_response"]').value = solution;

Как использовать:

  1. Замени ВАШ_API_КЛЮЧ на реальный ключ из панели 2Captcha
  2. Запусти код в консоли браузера на странице с капчей
  3. Дождись заполнения поля и отправь форму вручную

3.2. Что проверяют эти примеры

  • Корректный формат отправки изображения
  • Успешное создание задачи и получение taskId
  • Стабильный опрос результата до готовности
  • Правильная подстановка ответа в целевую форму

Если поле заполнилось верным текстом, интеграция работает.


4. Заметки по примерам

Формат изображения:

  • API принимает и чистый base64, и data URI
  • Префикс data:image/png;base64, можно оставить, он не мешает

Параметры задачи:

  • minLength и maxLength помогают сузить варианты ответа
  • Для 4chan обычно достаточно 4,6 символов

Время опроса:

  • Первый запрос к getTaskResult делай через 5 секунд
  • Далее опрашивай каждые 3 секунды
  • Среднее время решения: 5,15 секунд

Обработка ошибок:

  • Всегда проверяй поле errorId в ответах API
  • При errorId > 0 читай сообщение в поле errorDescription

5. Частые ошибки и решения

Ошибка Вероятная причина Решение
errorId: 10 Неверный clientKey Проверь ключ в панели 2Captcha
errorId: 11 Пустое или невалидное изображение Убедись, что base64-строка полная и без обрезки
errorId: 12 Превышен лимит размера Сожми изображение или обрежь до 1000px
Таймаут опроса Слишком частые запросы к getTaskResult Делай паузу 3 секунды между опросами
Неверный текст в ответе Сложное изображение или шум Попробуй отправить жалобу и повторить запрос

6. Дополнительные ресурсы

  • Документация API: 2captcha.com/api-docs/normal-captcha
    Описание метода ImageToTextTask, параметры и примеры

  • Панель управления: 2captcha.com/dashboard
    Статистика запросов, баланс, история задач

  • Поддержка: 2captcha.com/support
    Ответы на частые вопросы и форма обращения


7. Чек-лист перед запуском

  • Изображение капчи извлечено в формате base64 или data URI
  • Размер изображения не превышает 100 кБ и 1000 пикселей
  • Параметры задачи (minLength, maxLength) соответствуют ожидаемому ответу
  • clientKey скопирован без ошибок и лишних пробелов
  • Реализован опрос результата с паузой 3 секунды
  • Ответ подставляется в поле captcha_response перед отправкой формы
  • Добавлена обработка ошибок API и жалоб на неверные решения

Итоги

Автоматизация текстовой капчи на 4chan через 2Captcha требует внимания к трём моментам: правильный формат изображения, точные параметры задачи и стабильный опрос результата.

Ключевые советы:

  • Бери изображение напрямую из тега img, не пытайся скачать и перекодировать без нужды
  • Задавай minLength и maxLength, это ускоряет решение и повышает точность
  • Делай паузу перед первым опросом результата, чтобы не тратить запросы впустую
  • Отправляй жалобу, если ответ не подошёл, это улучшает сервис для всех

Следуй этим шагам, и решение капчи станет надёжной частью твоего скрипта.

Нужна версия под Puppeteer, Python или userscript, напиши, подготовлю.