Playwright Интеграция с программой распознавания капчи

Используйте эту страницу, если вашему процессу автоматизации Playwright требуется стабильный путь решения капчи с практическим руководством по интеграции API.

Death By Captcha (DBC) позволяет скриптам Playwright решать капчи через API вместо ручного взаимодействия: ваш скрипт извлекает параметры страницы, запрашивает решение у DBC, внедряет результат обратно на страницу и продолжает выполнение. Эта страница — быстрый старт: установка, рабочий пример кода и заметки по поддерживаемым задачам.

Установка

Node.js:

npm install playwright deathbycaptcha-lib

Python:

pip install deathbycaptcha-official

Используйте данные учётной записи DBC в клиенте. Создайте аккаунт и проверьте тарифы и баланс перед запуском сценария.

Пример кода: сценарий получения токена reCAPTCHA v2 (Node.js), адаптирован из официального рабочего примера.

const { chromium } = require('playwright');
const { HttpClient } = require('deathbycaptcha-lib');

const client = new HttpClient(process.env.DBC_USERNAME, process.env.DBC_PASSWORD);
const DEMO_URL = 'https://www.google.com/recaptcha/api2/demo';

async function solveRecaptchaV2(pageUrl, sitekey) {
  const balance = await new Promise((resolve, reject) =>
    client.get_balance((b) => (b ? resolve(b) : reject(new Error('Could not read balance')))));
  if (balance <= 0) throw new Error('No balance - top up before solving.');

  return new Promise((resolve, reject) =>
    client.decode(
      { extra: { type: 4, token_params: JSON.stringify({ googlekey: sitekey, pageurl: pageUrl }) } },
      (solution) => (solution && solution.text ? resolve(solution.text) : reject(new Error('No solution yet - retry')))
    ));
}

(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  await page.goto(DEMO_URL, { timeout: 60000 });

  // 1. extract the challenge parameters
  const sitekey = await page.getAttribute('#recaptcha-demo', 'data-sitekey');

  // 2. request the solution token from DBC (type 4 = reCAPTCHA v2 token)
  const token = await solveRecaptchaV2(DEMO_URL, sitekey);

  // 3. inject the token and trigger the page callback
  await page.evaluate((t) => {
    const el = document.getElementById('g-recaptcha-response');
    if (!el) return;
    el.style.display = 'block';
    el.value = t;
    el.dispatchEvent(new Event('input', { bubbles: true }));
    el.dispatchEvent(new Event('change', { bubbles: true }));
    const cfg = window.___grecaptcha_cfg;
    if (!cfg || !cfg.clients) return;
    for (const k of Object.keys(cfg.clients)) {
      const c = cfg.clients[k];
      for (const key of Object.keys(c)) {
        const item = c[key];
        if (item && typeof item.callback === 'function') return item.callback(t);
        if (item && item.W && typeof item.W.callback === 'function') return item.W.callback(t);
      }
    }
  }, token);

  // 4. submit and wait for success
  await page.click('#recaptcha-demo-submit');
  await page.waitForSelector('.recaptcha-success', { timeout: 15000 });

  console.log('solved');
  await browser.close();
})();

Полная рабочая версия: examples/playwright в официальном репозитории клиента Node.js

Типичный рабочий процесс Playwright

  1. Определите тип задачи в процессе автоматизации вашего браузера.
  2. Отправьте параметры вызова через API.
  3. Внедрить возвращенный токен/решение в целевой поток.
  4. Обрабатывайте повторные попытки и маршрутизацию ошибок с помощью явной политики тайм-аута.

Заметки по поддерживаемым задачам

Тема Примечание
Типы капч (API) reCAPTCHA v2 и v3, Cloudflare Turnstile, GeeTest, DataDome, а также изображения/текстовые капчи.
Баланс Решения оплачиваются с баланса аккаунта; проверьте его перед декодированием.
Повторные попытки Если решение не вернулось — это временная ситуация: повторите запрос с задержкой, как в официальном примере.
API против расширения Этот сценарий использует API внутри вашего скрипта; браузерное расширение — это путь без кода для ручного просмотра.
Поддерживаемые браузеры Chromium, Firefox и WebKit через Playwright (пример проверен в Chromium).

Вопросы интеграции

Площадь Почему это важно Рекомендуемая практика
Согласованность прокси Снижает риск несоответствия проверок в потоках токенов. Сохраняйте путь решения и отправки в контексте автоматизации.
Дисциплина тайм-аута Предотвращает зависания в очередях и нестабильную работу CI. Используйте ограниченные повторы с детерминированной обработкой резервного варианта.
Обработка в зависимости от типа Разным классам задач нужны разные поля полезной нагрузки. Начните со страниц типов API и проверяйте один тип за раз.

Следующий шаг реализации

При развертывании средства решения капчи Playwright сначала подтвердите один тип капчи, а затем расширьте охват с помощью проверок надежности и цен для масштаба производства.


Статус: OK

Серверы полностью готовы к работе с более быстрым, чем в среднем, временем отклика.
  • Среднее время решения
  • -- секунды - Normal CAPTCHAs (1 мин. назад)
  • 16 секунды - reCAPTCHA V2, V3 (1 мин. назад)
  • 15 секунды - другие (1 мин. назад)
Chrome and Firefox logos
Доступны расширения браузера

Обновления

  1. May 13: Crypto payments got better! You can now purchase your CAPTCHAs using cryptocurrency through the Hekelet payment processor at https://deathbycaptcha.com/user-pay and receive an extra 20% FREE CAPTCHA credit with every package purchased this way.
  2. Apr 15: GitHub Updates: We’ve upgraded our libraries, expanded sample code, enhanced documentation, and added support for C++ and Go, making integration smoother than ever. Explore what’s new at github.com/deathbycaptcha!
  3. Jan 27: RESOLVED - If your email to one of our official addresses ([email protected], [email protected], or [email protected]) has bounced or you haven’t received a response, please try resending it or reach out via our Live Chat Support at https://deathbycaptcha.com/es/contact.

  4. Предыдущие обновления…

Поддерживать

Наша система разработана таким образом, чтобы быть максимально удобной и простой в использовании. Если у вас возникнут какие-либо проблемы с этим, просто напишите нам по адресу Электронная почта службы технической поддержки DBC com, и агент службы поддержки свяжется с вами как можно скорее.

Живая поддержка

Доступно с понедельника по пятницу (с 10:00 до 16:00 по восточному поясному времени) Live support image. Link to live support page