Node.js SDK

Распознавание капчи на Node.js для Puppeteer, Playwright и чистого JavaScript

Добавьте capskip из npm, дождитесь ответа через await и двигайтесь дальше. Типизированный клиент без зависимостей отдаёт reCAPTCHA, текстовые картинки, Turnstile и GeeTest v3 на решение приложению на вашем собственном железе, без оплаты за каждое решение.

Windows x64·Работает локально, поэтому капча не покидает ваш компьютер
  • npm install capskip
  • Типы TypeScript в комплекте
  • Без оплаты за решение
капч в месяц40,000
40.0k250.0k
В других сервисах поштучно, примерно $1.40 за 1000$56.00
CapSkip Bronze, фиксированно$35.00
$21.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

JavaScript
// 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 до первого токена

  1. Установите приложение для распознавания

    Установите CapSkip на тот компьютер с Windows или VPS, который возьмёт на себя нагрузку по распознаванию. Ваш код на Node может работать там же или на любой другой машине, у которой есть сетевой доступ к нему. Скачать установщик для Windows

  2. Активируйте тариф или пробный период

    Выберите ежемесячный тариф или попробуйте CapSkip бесплатно 3 дня, до 500 решений и без карты. Данные для входа из письма откроют приложение при первом входе. Посмотреть тарифы и цены

  3. Добавьте capskip и дождитесь решения

    Установите пакет через npm, создайте один клиент для приложения и ожидайте решение через await везде, где капча останавливает ваш скрипт, воркер или сессию браузера. Открыть руководство по SDK

API с поштучной оплатой против CapSkip в кодовой базе Node.js

Что меняется для кодовой базы на Node, когда распознавание переезжает с удалённого API с поштучной оплатой в приложение на машине под вашим контролем.

ФункцияCapSkip2Captcha / CapSolver
Как вы платитеОт $35 в месяц, все решения включены, без платы за подключениеОплата за каждую тысячу решений по факту
Где решаются капчиВнутри CapSkip, на вашем ПК с Windows или сервереНа удалённых серверах или на ферме ручного решения
Цена более крупного пакета Promise.allНичего сверх тарифа: предел задают ваш процессор и памятьКаждое дополнительное параллельное решение стоит денег
Ежемесячные расходы при росте объёмаФиксированные при любом числе решенийРастут вместе с объёмом
Данные капчиНикогда не покидают машину под вашим контролемПередаются третьей стороне для решения
Пакет для Nodecapskip в npm: типизация, ноль зависимостей и эмуляция APIСобственный клиент поставщика, привязанный к его API
Время решения капчи-картинкиОколо 0,1 секунды, без удалённой очередиСетевая задержка и ожидание в очереди при каждом решении

Цены

Хватит платить за каждое решение

Выберите лицензию

Лицензия Bronze

$35/ месяц

Подписаться на Bronze

Мгновенная активация лицензии

Оплата помесячно. Отменить подписку можно в любой момент в личном кабинете.

Функции те же. Больше машин, больше производительность.

Каждая машина решает настолько быстро, насколько позволяют её процессор и память. Больше машин означает больше одновременных потоков, поэтому 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-пакет установить, чтобы решать капчу?
Выполните npm install capskip. Пакет работает на Node 18 или новее, не добавляет зависимостей во время выполнения и передаёт каждую капчу в CapSkip на вашей машине с Windows или сервере, а затем возвращает токен или текст. Он поддерживает типы капчи, с которыми справляется приложение, включая reCAPTCHA, Turnstile и hCaptcha.
Можно ли ожидать решения через await в скриптах Puppeteer или Playwright?
Да. Считайте sitekey через page.$eval в Puppeteer или page.getAttribute в Playwright, выполните await solver.recaptcha(sitekey, page.url()), затем через page.evaluate запишите result.code в textarea g-recaptcha-response и отправьте форму. Клиент общается только с приложением, поэтому ведёт себя одинаково и в наборах тестов, и в скриптах для парсинга.
Работает ли клиент с fetch совсем без браузера?
Да. Сначала решите капчу, затем поместите токен в тело URLSearchParams под именем поля, которое ожидает форма, например g-recaptcha-response, и отправьте запрос. Если решение шло через прокси, отправляйте форму с того же IP: несовпадение адресов часто становится причиной, по которой сайт отклоняет токен.
Что возвращает вызов Turnstile на полноэкранной странице проверки Cloudflare?
Для обычного виджета выполните await solver.turnstile(sitekey, url) и поместите токен в cf-turnstile-response. Полноэкранной проверке Cloudflare нужны два дополнительных параметра, data и pagedata, считанные с этой страницы. Тогда результат содержит не только токен, но и userAgent, и следующий запрос должен использовать именно этот userAgent.
Сколько решений один процесс Node может держать в работе одновременно?
Столько, сколько выдержит машина с CapSkip. Ни один ключ не ограничен по частоте запросов, и ни одно решение не оплачивается отдельно, поэтому оберните вызовы в Promise.all или в Promise.allSettled, если один сбой не должен отклонять остальные. Для множества одновременных решений на основе браузера дайте машине 32 ГБ оперативной памяти или больше.
Можно ли импортировать capskip из ES-модуля или файла TypeScript?
Да. Определения типов входят в комплект, поэтому пакет @types добавлять не нужно, а SolveResult и объекты опций типизированы. Среда выполнения построена на CommonJS, и ES-модуль импортирует класс CapSkip через interop в Node без дополнительной настройки.
Как распознать капчу-картинку на JavaScript?
Передайте в solver.normal() путь на диске, ссылку на удалённое изображение или data URI, и в result.code окажутся распознанные символы, обычно примерно через 0,1 секунды. Решение картинок не требует прокси и не открывает браузер, поэтому вписывается в любой цикл запросов или воркер.
Будет ли мой существующий npm-код для 2Captcha работать с CapSkip?
Да, если код работает на той машине с Windows, где установлен CapSkip. Включите в приложении эмулятор 2Captcha, нажмите Add рядом с записью для файла hosts, и эта библиотека будет получать ответы локально. Другой путь: сам пакет capskip, который работает по тому же протоколу in.php и res.php.

Ответ на капчу за каждым await

Установите приложение, добавьте capskip в package.json и дождитесь первого токена. Фиксированный ежемесячный тариф покрывает каждое решение ваших скриптов, краулеров и воркеров при любом размере пакета.