Playwright Integrasi Pemecah Captcha

Gunakan halaman ini ketika alur otomatisasi Playwright Anda memerlukan jalur penyelesaian captcha yang stabil dengan panduan integrasi API yang praktis.

Death By Captcha (DBC) memungkinkan skrip Playwright memecahkan tantangan captcha melalui API alih-alih interaksi manual: skrip Anda mengekstrak parameter tantangan dari halaman, meminta solusi dari DBC, menyuntikkan hasil kembali ke halaman, dan melanjutkan alur. Halaman ini adalah quickstart: instalasi, contoh kode yang dapat dijalankan, dan catatan tugas yang didukung.

Instalasi

Node.js:

npm install playwright deathbycaptcha-lib

Python:

pip install deathbycaptcha-official

Gunakan kredensial akun DBC Anda di klien. Buat akun dan periksa harga dan saldo sebelum menjalankan alur.

Contoh kode: alur token reCAPTCHA v2 (Node.js), diadaptasi dari contoh resmi yang dapat dijalankan.

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

Versi lengkap yang dapat dijalankan: examples/playwright di repositori resmi klien Node.js

Alur Kerja Playwright yang Khas

  1. Deteksi jenis tantangan dalam alur otomatisasi browser Anda.
  2. Kirimkan parameter tantangan melalui API.
  3. Suntikkan token/solusi yang dikembalikan ke aliran target.
  4. Tangani percobaan ulang dan perutean kegagalan dengan kebijakan batas waktu yang eksplisit.

Catatan tugas yang didukung

Topik Catatan
Jenis captcha (API) reCAPTCHA v2 dan v3, Cloudflare Turnstile, GeeTest, DataDome, serta captcha gambar/teks.
Saldo Solusi dibayar dari saldo akun; periksa sebelum melakukan dekode.
Percobaan ulang Tidak adanya solusi bersifat sementara: coba lagi dengan backoff, seperti contoh resmi.
API vs ekstensi Alur ini menggunakan API di dalam skrip Anda; ekstensi browser adalah jalur tanpa kode untuk penjelajahan manual.
Browser yang didukung Chromium, Firefox, dan WebKit melalui Playwright (sampel diverifikasi di Chromium).

Pertimbangan Integrasi

Daerah Mengapa itu penting Latihan yang disarankan
Konsistensi proxy Mengurangi risiko ketidakcocokan verifikasi dalam aliran token. Jaga agar jalur penyelesaian dan pengiriman tetap selaras dalam konteks otomatisasi.
Disiplin batas waktu Mencegah antrian terhenti dan proses CI yang tidak stabil. Gunakan percobaan ulang terbatas dengan penanganan fallback deterministik.
Penanganan khusus tipe Kelas tantangan yang berbeda memerlukan bidang muatan yang berbeda. Mulai dari halaman jenis API dan validasi satu jenis dalam satu waktu.

Implementasi langkah selanjutnya

Untuk peluncuran pemecah captcha Playwright, validasi satu jenis captcha terlebih dahulu, lalu perluas cakupan dengan pemeriksaan keandalan dan harga untuk skala produksi.


Status: OK

Server beroperasi penuh dengan waktu respons yang lebih cepat dari rata-rata.
  • Waktu penyelesaian rata-rata
  • -- detik - Normal CAPTCHAs (1 menit. yang lalu)
  • 16 detik - reCAPTCHA V2, V3 (1 menit. yang lalu)
  • 15 detik - yang lain (1 menit. yang lalu)
Chrome and Firefox logos
Ekstensi browser tersedia

Pembaruan

  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. পূর্ববর্তী আপডেট…

Mendukung

Sistem kami dirancang untuk sepenuhnya ramah pengguna dan mudah digunakan. Jika Anda memiliki masalah dengan itu, cukup email kami diEmail dukungan teknis DBC com, dan agen dukungan akan menghubungi Anda sesegera mungkin.

Dukungan Langsung

Tersedia Senin hingga Jumat (10 pagi hingga 4 sore EST) Live support image. Link to live support page