Распознавание капчи на Node.js для Puppeteer, Playwright и чистого JavaScript
Добавьте capskip из npm, дождитесь ответа через await и двигайтесь дальше. Типизированный клиент без зависимостей отдаёт reCAPTCHA, текстовые картинки, Turnstile и GeeTest v3 на решение приложению на вашем собственном железе, без оплаты за каждое решение.
- npm install capskip
- Типы TypeScript в комплекте
- Без оплаты за решение
const solver = new CapSkip();
const token = await solver.recaptcha({
sitekey: '6Le-wvkS…',
url: 'example.com/signup'
});03AGdBq27…0.12s · $0.00Выполните npm install capskip, и в вашем проекте появится распознавание капчи на Node.js: передайте ему reCAPTCHA, виджет Cloudflare Turnstile, слайдер GeeTest v3 или искажённую текстовую картинку, и Promise вернёт токен или распознанные символы. Вся работа происходит в десктопном приложении CapSkip, которое вы запускаете на Windows (домашнем ПК или VPS); сам пакет представляет собой лёгкий HTTP-клиент для Node 18 и новее без зависимостей во время выполнения.
Каждый метод возвращает Promise, поэтому клиент читается так же, как остальной ваш асинхронный код. Используйте await внутри кода на Puppeteer и Playwright, в краулерах на fetch или в воркерах очередей, либо запускайте десятки решений сразу и собирайте их через Promise.all. Определения TypeScript входят в пакет, поэтому это решение капчи на JavaScript одинаково подходит для проектов на CommonJS, ESM и с типизацией.
Параллельность не стоит ничего сверх тарифа. Нет ни платы за каждое решение, ни лимита запросов на ключ, поэтому пакет из двухсот решений стоит столько же, сколько один вызов; потолок задают только процессор и память решающей машины. Тарифы начинаются от $35 в месяц за одно устройство, и на каждом из них распознавание безлимитное.
Ваш клиент 2Captcha можно оставить. Если Node-проект на машине с CapSkip уже использует библиотеку 2Captcha или Anti-Captcha, включите в приложении эмулятор этого сервиса и нажмите его кнопку Add для файла hosts. После этого его запросы обрабатываются локально: пополнять баланс не нужно, и ни одна строка кода не меняется.
Почему это решение капчи из npm подходит для асинхронного кода на Node
Ждите одно решение или тысячу
Каждый метод возвращает Promise. Дождитесь одного ответа прямо в коде или распараллельте работу через Promise.all, а когда одна неудачная капча не должна отклонять остальные, переходите на Promise.allSettled.
Типизация для проектов на TypeScript
Определения для SolveResult и всех объектов опций лежат прямо в пакете, поэтому редактор подсказывает автодополнение без установки @types. ES-модули загружают сборку CommonJS через interop в Node.
Одна запись в lockfile
Клиент построен только на встроенных модулях http и https в Node 18 и новее, поэтому при его добавлении в node_modules больше ничего не попадает.
Прокси для каждого решения с токеном
Укажите для решений с токеном прокси с его типом и URI, и капча будет решена с того же IP, с которого потом отправляется форма. Поддерживаются SOCKS5 и SOCKS5h, а также HTTP и HTTPS.
Работает рядом с любым headless-браузером
Клиент никогда не управляет браузером. Puppeteer или Playwright считывает виджет, CapSkip возвращает ответ, а один вызов page.evaluate записывает его туда, где его ждёт форма.
Пакеты шире, счёт тот же
Ни платы за решение, ни лимита запросов на ключ: параллельные решения упираются только в процессорное время и оперативную память решающего ПК, поэтому степень параллельности становится вопросом железа.
Выберите, как ваш Node-проект подключается к CapSkip
// npm install capskip
const { CapSkip } = require('capskip');
const solver = new CapSkip({ host: '127.0.0.1', port: 8080 });
(async () => {
const result = await solver.recaptcha(
'YOUR_SITEKEY',
'https://example.com/page-with-recaptcha',
);
console.log(result.code); // token, inject and submit
})();Один клиент, один await: токен попадает в result.code и готов к записи на страницу или к отправке через fetch.
Пусть виджеты решает расширение
Никакого кода для решения: если установлено расширение для Chrome или Firefox и запущено приложение, виджеты решаются прямо на странице. Puppeteer и Playwright также могут загрузить его в запускаемый ими Chromium.
Клиент из npm и его собратья
Один await на каждую капчу в Node 18 или новее. Для частей стека, написанных не на JavaScript, есть официальные клиенты для Python, PHP и .NET.
Локальный API для уже работающего кода
Любой HTTP-клиент на Node может обращаться к приложению напрямую, а библиотеки 2Captcha или Anti-Captcha работают с ним без изменений через встроенную эмуляцию сервисов.
Испытайте клиент на живой странице с reCAPTCHA
На нашей демо-странице размещён настоящий виджет reCAPTCHA v2. Направьте на него несколько строк на Node или откройте его в браузере с активным расширением и посмотрите, как возвращается токен, ещё до того, как в дело вступит ваш рабочий код.
Три шага от npm install до первого токена
-
Установите приложение для распознавания
Установите CapSkip на тот компьютер с Windows или VPS, который возьмёт на себя нагрузку по распознаванию. Ваш код на Node может работать там же или на любой другой машине, у которой есть сетевой доступ к нему. Скачать установщик для Windows
-
Активируйте тариф или пробный период
Выберите ежемесячный тариф или попробуйте CapSkip бесплатно 3 дня, до 500 решений и без карты. Данные для входа из письма откроют приложение при первом входе. Посмотреть тарифы и цены
-
Добавьте capskip и дождитесь решения
Установите пакет через npm, создайте один клиент для приложения и ожидайте решение через await везде, где капча останавливает ваш скрипт, воркер или сессию браузера. Открыть руководство по SDK
API с поштучной оплатой против CapSkip в кодовой базе Node.js
Что меняется для кодовой базы на Node, когда распознавание переезжает с удалённого API с поштучной оплатой в приложение на машине под вашим контролем.
| Функция | CapSkip | 2Captcha / CapSolver |
|---|---|---|
| Как вы платите | От $35 в месяц, все решения включены, без платы за подключение | Оплата за каждую тысячу решений по факту |
| Где решаются капчи | Внутри CapSkip, на вашем ПК с Windows или сервере | На удалённых серверах или на ферме ручного решения |
| Цена более крупного пакета Promise.all | Ничего сверх тарифа: предел задают ваш процессор и память | Каждое дополнительное параллельное решение стоит денег |
| Ежемесячные расходы при росте объёма | Фиксированные при любом числе решений | Растут вместе с объёмом |
| Данные капчи | Никогда не покидают машину под вашим контролем | Передаются третьей стороне для решения |
| Пакет для Node | capskip в npm: типизация, ноль зависимостей и эмуляция API | Собственный клиент поставщика, привязанный к его API |
| Время решения капчи-картинки | Около 0,1 секунды, без удалённой очереди | Сетевая задержка и ожидание в очереди при каждом решении |
Цены
Хватит платить за каждое решение
Выберите лицензию
Лицензия Bronze
$35/ месяц
Мгновенная активация лицензии
Оплата помесячно. Отменить подписку можно в любой момент в личном кабинете.
Функции те же. Больше машин, больше производительность.
Каждая машина решает настолько быстро, насколько позволяют её процессор и память. Больше машин означает больше одновременных потоков, поэтому Silver решает вдвое больше капч одновременно, а Gold втрое больше.
- Безлимитное решение, без дневных ограничений
- Безлимитные потоки, скорость растёт вместе с оборудованием
- Точность распознавания от 90% до 100%
- Прямая замена API основных сервисов распознавания
- Работает почти с любым инструментом, без программирования
- REST API, SDK и расширение для браузера
- Бесплатное обучение, когда появляется новый тип капчи
- Работает на вашей машине, ничего с неё не уходит
Каждый тип капчи, показанный выше, входит в любую лицензию. Посмотреть список типов
Просто хотите сначала попробовать?
Начните с бесплатного 3-дневного пробного периода и решите 500 капч любого типа на своих целевых сайтах.
Похожие сервисы распознавания капчи & руководства
Решение капчи на JavaScript: от одного await до воркера очереди
Начните с одного вызова. В проекте на Node 18 или новее добавьте пакет, направьте один клиент CapSkip на хост и порт приложения и используйте его во всех модулях. Для reCAPTCHA или Turnstile передайте sitekey и URL страницы; для GeeTest v3 нужны значение gt и только что выданный challenge; для картинки подойдут путь к файлу, URL или data URI. Для hCaptcha нужна та же пара, что и для reCAPTCHA: её sitekey и URL страницы.
Затем распараллеливайте. Поскольку каждый метод возвращает Promise, краулер может запустить решения для многих страниц и дождаться их вместе. Promise.allSettled надёжнее собирает результаты: одно отклонённое решение возвращается как статус, а не обрушивает весь пакет. CapSkip не ограничивает число потоков, так что предел задаёт сама машина. Решение картинок нетребовательно к ресурсам, но reCAPTCHA, Turnstile и GeeTest запускают в фоне настоящие экземпляры браузера, поэтому, когда много решений идёт параллельно, закладывайте 32 ГБ оперативной памяти или больше.
Для долгих задач вынесите распознавание в воркер очереди, чтобы веб-запросы никогда не ждали капчу; один из вариантов показан в руководстве по BullMQ ниже. Задавайте тайм-ауты для каждого типа с хорошим запасом. Ответы для картинок приходят почти мгновенно (около 0,1 секунды), а типы на основе браузера занимают больше времени: закладывайте от 3 до 10 секунд на reCAPTCHA или Turnstile и примерно от 7 до 12 секунд на GeeTest.
И наконец, используйте токены быстро. Токены reCAPTCHA и Turnstile истекают за считаные минуты, поэтому отправляйте запрос сразу после того, как решение вернётся, и делайте его с того же IP, что использовал прокси. В браузере задайте скрытое поле ответа через page.evaluate; с fetch или undici добавьте токен в тело формы.
Руководства по теме: распознавание капчи в Puppeteer · Cloudflare Turnstile на Node.js · Воркер BullMQ для капчи
Какой npm-пакет установить, чтобы решать капчу?
Можно ли ожидать решения через await в скриптах Puppeteer или Playwright?
Работает ли клиент с fetch совсем без браузера?
Что возвращает вызов Turnstile на полноэкранной странице проверки Cloudflare?
Сколько решений один процесс Node может держать в работе одновременно?
Можно ли импортировать capskip из ES-модуля или файла TypeScript?
Как распознать капчу-картинку на JavaScript?
Будет ли мой существующий npm-код для 2Captcha работать с CapSkip?
Ответ на капчу за каждым await
Установите приложение, добавьте capskip в package.json и дождитесь первого токена. Фиксированный ежемесячный тариф покрывает каждое решение ваших скриптов, краулеров и воркеров при любом размере пакета.
