Playwright Integração com o Solver Captcha

Use esta página quando seu fluxo de automação Playwright precisar de um caminho estável de resolução de captcha com orientação prática de integração de API.

O Death By Captcha (DBC) permite que scripts Playwright resolvam desafios de captcha pela API em vez da interação manual: seu script extrai os parâmetros do desafio da página, solicita uma solução ao DBC, injeta o resultado de volta na página e continua o fluxo. Esta página é o quickstart: instalação, um exemplo de código executável e notas sobre as tarefas suportadas.

Instalação

Node.js:

npm install playwright deathbycaptcha-lib

Python:

pip install deathbycaptcha-official

Use as credenciais da sua conta DBC no cliente. Crie uma conta e confira preços e saldo antes de executar o fluxo.

Exemplo de código: fluxo de token reCAPTCHA v2 (Node.js), adaptado do exemplo oficial executável.

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();
})();

Versão completa executável: examples/playwright no repositório oficial do cliente Node.js

Fluxo de trabalho típico de Playwright

  1. Detecte o tipo de desafio no fluxo de automação do seu navegador.
  2. Envie parâmetros de desafio por meio da API.
  3. Injete o token/solução retornado no fluxo de destino.
  4. Lide com novas tentativas e roteamento de falhas com política de tempo limite explícita.

Notas sobre as tarefas suportadas

Tópico Nota
Tipos de captcha (API) reCAPTCHA v2 e v3, Cloudflare Turnstile, GeeTest, DataDome e captchas de imagem/texto.
Saldo As soluções são pagas pelo saldo da conta; verifique-o antes de decodificar.
Novas tentativas Não retornar solução é temporário: tente novamente com backoff, como faz o exemplo oficial.
API versus extensão Este fluxo usa a API dentro do seu script; a extensão do navegador é o caminho sem código para a navegação manual.
Navegadores suportados Chromium, Firefox e WebKit via Playwright (amostra verificada no Chromium).

Considerações sobre integração

Área Por que isso importa Prática recomendada
Consistência de proxy Reduz o risco de incompatibilidade de verificação em fluxos de tokens. Mantenha o caminho de resolução e envio alinhado no contexto de automação.
Disciplina de tempo limite Evita paralisações na fila e execuções de CI instáveis. Use novas tentativas limitadas com tratamento determinístico de fallback.
Manuseio específico do tipo Diferentes classes de desafio precisam de diferentes campos de carga útil. Comece nas páginas de tipo de API e valide um tipo de cada vez.

Próxima etapa de implementação

Para a implementação do solucionador de captcha Playwright, valide primeiro um tipo de captcha e, em seguida, expanda a cobertura com verificações de confiabilidade e preços para escala de produção.


Status: OK

Os servidores estão totalmente operacionais com tempo de resposta mais rápido que a média.
  • Tempo médio de resolução
  • 4 segundos - Normal CAPTCHAs (1 min. atrás)
  • 17 segundos - reCAPTCHA V2, V3 (1 min. atrás)
  • 16 segundos - outros (1 min. atrás)
Chrome and Firefox logos
Extensões do navegador disponíveis

Atualizações

  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. Atualizações anteriores…

Apoiar

Nosso sistema foi projetado para ser totalmente amigável e fácil de usar. Se você tiver algum problema com isso, basta enviar um e-mail paraE-mail de suporte técnico DBC com, e um agente de suporte entrará em contato com você o mais rápido possível.

Suporte ao vivo

Disponível de segunda a sexta-feira (10h às 16h EST) Live support image. Link to live support page