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:
- Перейдите в раздел Учетные данные → Добавить учетные данные → Проверка подлинности по заголовку.
- Имя:
CaptchaAI API Key - Храните ключ надежно
Или используйте переменные среды:
# 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.
Связанные руководства
- Zapier + CaptchaAI: автоматизация без кода
- CaptchaAI Краткое руководство по API
- CaptchaAI URL обратного вызова / Руководство по вебхуку