Эта статья была полезной?
Как обойти 2chan капчу
Технический специалист
Введение
Это руководство для разработчиков, которые сталкиваются с текстовой капчей на 4chan и хотят автоматизировать её решение через API RuCaptcha.
Мы разберём, как получить изображение капчи, отправить его на распознавание, получить ответ и подставить результат в форму. Всё с готовыми примерами кода и пояснениями.
Что понадобится:
- Аккаунт RuCaptcha с доступом к API
- Баланс для оплаты решений
- Любая среда для кода: терминал с Python или Node.js, браузер с консолью
1. Текстовая капча на 4chan: как это работает
1.1. Когда появляется текстовая капча
На некоторых досках 4chan, особенно при использовании Tor или VPN, вместо пазл-слайдера показывается классическая капча с искажённым текстом. Это изображение с набором символов, которые нужно ввести в поле формы.
1.2. Поддержка через API RuCaptcha
Этот тип капчи полностью поддерживается методом ImageToTextTask. API принимает изображение в двух форматах:
| Формат | Пример | Когда использовать |
|---|---|---|
| Чистая base64-строка | iVBORw0KGgoAAAANSUhEUg... |
Если извлекаешь данные вручную |
| Data URI | data:image/png;base64,iVBORw0KGgoAAAANSUhEUg... |
Если берёшь src из тега img |
Можно использовать любой вариант, результат будет одинаковым.
1.3. Ограничения метода
- Размер изображения не больше 100 кБ
- Ширина и высота не больше 1000 пикселей
- Поддерживаются латинские символы и цифры
- Время решения обычно 5,15 секунд
2. Пошаговая настройка
2.1. Шаг 1: получить изображение капчи
Найди в коде страницы элемент с картинкой капчи:
html
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..." />
Извлеки значение атрибута src:
js
const captchaData = document.querySelector('img.captcha').src; // полный data URI
💡 Совет: если в src только путь к файлу, а не data URI, сделай запрос к этому пути и конвертируй ответ в base64.
2.2. Шаг 2: отправить задачу в API
Создай задачу типа ImageToTextTask:
http
POST https://api.rucaptcha.com/createTask
Content-Type: application/json
json
{
"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
POST https://api.rucaptcha.com/getTaskResult
json
{
"clientKey": "ВАШ_API_КЛЮЧ",
"taskId": "ID_ЗАДАЧИ"
}
Подожди 5 секунд после создания задачи, затем опрашивай каждые 3 секунды до статуса ready.
Пример успешного ответа:
json
{
"errorId": 0,
"status": "ready",
"solution": {
"text": "K7aQ9"
}
}
2.4. Шаг 4: вставить ответ в форму
Заполни поле капчи на странице 4chan:
js
document.querySelector('input[name="captcha_response"]').value = "K7aQ9";
После этого отправь форму как обычно.
2.5. Шаг 5: сообщить об ошибке
Если результат распознан неверно, отправь жалобу:
http
POST https://api.rucaptcha.com/reportIncorrectResult
json
{
"clientKey": "ВАШ_API_КЛЮЧ",
"taskId": "ID_ЗАДАЧИ"
}
Это поможет улучшить качество решений в будущем.
3. Готовые примеры для теста
3.1. JavaScript: полный цикл в браузере
js
// Шаг 1: получить изображение
const captchaData = document.querySelector('img.captcha').src;
// Шаг 2: создать задачу
const createResponse = await fetch('https://api.rucaptcha.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.rucaptcha.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;
Как использовать:
- Замени
ВАШ_API_КЛЮЧна реальный ключ из панели RuCaptcha - Запусти код в консоли браузера на странице с капчей
- Дождись заполнения поля и отправь форму вручную
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 | Проверь ключ в панели RuCaptcha |
errorId: 11 |
Пустое или невалидное изображение | Убедись, что base64-строка полная и без обрезки |
errorId: 12 |
Превышен лимит размера | Сожми изображение или обрежь до 1000px |
| Таймаут опроса | Слишком частые запросы к getTaskResult | Делай паузу 3 секунды между опросами |
| Неверный текст в ответе | Сложное изображение или шум | Попробуй отправить жалобу и повторить запрос |
6. Дополнительные ресурсы
-
Документация API: rucaptcha.com/api-docs/normal-captcha
Описание метода ImageToTextTask, параметры и примеры -
Панель управления: rucaptcha.com/dashboard
Статистика запросов, баланс, история задач -
Поддержка: rucaptcha.com/support
Ответы на частые вопросы и форма обращения
7. Чек-лист перед запуском
- Изображение капчи извлечено в формате base64 или data URI
- Размер изображения не превышает 100 кБ и 1000 пикселей
- Параметры задачи (minLength, maxLength) соответствуют ожидаемому ответу
- clientKey скопирован без ошибок и лишних пробелов
- Реализован опрос результата с паузой 3 секунды
- Ответ подставляется в поле
captcha_responseперед отправкой формы - Добавлена обработка ошибок API и жалоб на неверные решения
Итоги
Автоматизация текстовой капчи на 4chan через RuCaptcha требует внимания к трём моментам: правильный формат изображения, точные параметры задачи и стабильный опрос результата.
Ключевые советы:
- Бери изображение напрямую из тега img, не пытайся скачать и перекодировать без нужды
- Задавай minLength и maxLength, это ускоряет решение и повышает точность
- Делай паузу перед первым опросом результата, чтобы не тратить запросы впустую
- Отправляй жалобу, если ответ не подошёл, это улучшает сервис для всех
Следуй этим шагам, и решение капчи станет надёжной частью твоего скрипта.
Нужна версия под Puppeteer, Python или userscript, напиши, подготовлю.