Туториалы

n8n + CaptchaAI: рабочий процесс решения CAPTCHA без кода

n8n — это инструмент автоматизации рабочих процессов с открытым исходным кодом и встроенной поддержкой циклов, что делает его более гибким, чем Zapier, для решения CAPTCHA. Вы можете создать отправку — опрос — использовать рабочий процесс, который автоматически повторяет попытки до завершения решения.


Обзор рабочего процесса

Manual Trigger / Cron
    ↓
HTTP Request: Submit CAPTCHA
    ↓
Wait: 10 seconds
    ↓
Loop: Poll until solved
    ├── HTTP Request: Get result
    ├── IF: status == 1? → Exit loop
    └── Wait: 5 seconds → Loop again
    ↓
HTTP Request: Use token

Узел 1: Отправьте CAPTCHA

Добавьте узел HTTP-запрос:

Параметр Ценить
Метод POST
URL-адрес https://ocr.captchaai.com/in.php
Тип содержимого тела Form URL Encoded

Параметры кузова:

Имя Ценить
key {{ $credentials.captchaaiApiKey }} или жестко закодируйте свой ключ
method userrecaptcha
googlekey 6Le-SITEKEY
pageurl https://example.com
json 1

Ответ:

{
  "status": 1,
  "request": "71823456"
}

Узел 2: Подождите

Добавьте узел Ожидание:

Параметр Ценить
Время ожидания 10
Единица Seconds

Это дает решателю время начать обработку до первого опроса.


Узел 3: Результат опроса (с циклом)

n8n поддерживает циклическое прохождение узла Loop Over Items или подключение ложного вывода узла IF обратно к предыдущему узлу.

Вариант А: простой цикл ЕСЛИ

Добавьте узел HTTP-запрос (опрос):

Параметр Ценить
Метод GET
URL-адрес https://ocr.captchaai.com/res.php
Параметры запроса key, action=get, id={{ $json.request }}, json=1

Подключите его к узлу IF:

Состояние Ценить
Значение 1 {{ $json.status }}
Операция Equal
Значение 2 1
  • Истинный результат -> Переходите к следующему действию (используйте токен)
  • Ложный вывод -> Подождите (5 секунд) -> возврат к узлу опроса

Вариант Б: Кодовый узел

Для большего контроля используйте узел Code:

const apiKey = 'YOUR_API_KEY';
const taskId = $input.first().json.request;

for (let i = 0; i < 24; i++) {
  await new Promise(r => setTimeout(r, 5000));

  const resp = await fetch(
    `https://ocr.captchaai.com/res.php?key=${apiKey}&action=get&id=${taskId}&json=1`
  );
  const data = await resp.json();

  if (data.status === 1) {
    return [{ json: { token: data.request, taskId } }];
  }
  if (data.request !== 'CAPCHA_NOT_READY') {
    throw new Error(`CaptchaAI error: ${data.request}`);
  }
}

throw new Error(`Task ${taskId} timed out`);

Узел 4: Используйте токен

Добавьте еще один узел HTTP Request для отправки формы с решенным токеном:

Параметр Ценить
Метод POST
URL-адрес https://staging.example.com/submit
Тип содержимого тела Form URL Encoded

Параметры тела включают данные вашей формы, а также:

Имя Ценить
g-recaptcha-response {{ $json.token }}

Безопасное хранение ключа API

Используйте систему Учетные данные n8n:

  1. Перейдите в раздел Учетные данные → Добавить учетные данные → Проверка подлинности по заголовку.
  2. Имя: CaptchaAI API Key
  3. Храните ключ надежно

Или используйте переменные среды:

# In your n8n environment
export CAPTCHAAI_API_KEY="your_key_here"

Ссылка в узлах: {{ $env.CAPTCHAAI_API_KEY }}


Рабочий процесс CAPTCHA для изображений

Для изображений CAPTCHA настройте узел «Отправить»:

Имя Ценить
method base64
body Изображение в кодировке Base64 (с предыдущего узла или URL-адреса)

Чтобы преобразовать URL-адрес изображения в base64 в n8n, добавьте узел Code перед отправкой:

const imageUrl = $input.first().json.imageUrl;
const resp = await fetch(imageUrl);
const buffer = Buffer.from(await resp.arrayBuffer());
const base64 = buffer.toString('base64');

return [{ json: { imageBase64: base64 } }];

Порядок проверки баланса

Создайте отдельный рабочий процесс, который выполняется по расписанию:

Cron (daily at 9 AM)
    ↓
HTTP Request: GET res.php?action=getbalance
    ↓
IF: balance < 5
    ↓
Slack / Email: "CaptchaAI balance low: $X.XX"

n8n против Zapier для решения CAPTCHA

Особенность н8н Запир
Поддержка Loop/retry Собственный (циклы IF, узел цикла) Ограничено (только пути)
Самостоятельный вариант Да (бесплатно) Нет (только облако)
Кодовые узлы Полный JavaScript Ограниченный
Расходы Бесплатное (самостоятельное размещение) или платное облако Платно (за задание)
Простота настройки Умеренный Легкий

n8n подходящий подходит для рабочих процессов CAPTCHA из-за поддержки циклов и узлов кода.


Поиск неисправностей

Проблема Причина Исправить
Цикл опроса работает вечно Нет максимального ограничения на итерацию Добавьте переменную-счетчик, прервите после 24 итераций
CAPCHA_NOT_READY без перерыва Слишком мало времени ожидания перед первым опросом Увеличьте начальное ожидание до 15-20 секунд.
Токен недоступен в следующем узле Неправильный путь выражения Убедитесь, что {{ $json.token }} соответствует выводу
Учетные данные не найдены Переменная среды не установлена Перезапустите n8n после установки переменных окружения.

Часто задаваемые вопросы

Могу ли я обрабатывать несколько CAPTCHA в одном рабочем процессе?

Да. Используйте узел Разделить на пакеты для обработки нескольких элементов, каждый из которых имеет свой собственный поток отправки — опроса — использования.

Поддерживает ли n8n Cloudflare Turnstile?

Да. Измените method на turnstile и используйте sitekey вместо googlekey.


Включите решение CAPTCHA в свои рабочие процессы n8n

Получите ключ API по адресуcaptchaai.com.


Связанные руководства

Комментарии для этой статьи отключены.