Playwright कैप्चा सॉल्वर एकीकरण

इस पृष्ठ का उपयोग तब करें जब आपके Playwright स्वचालन प्रवाह को व्यावहारिक एपीआई एकीकरण मार्गदर्शन के साथ एक स्थिर कैप्चा समाधान पथ की आवश्यकता हो।

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

पूर्ण चलाने योग्य संस्करण: आधिकारिक Node.js क्लाइंट रिपॉज़िटरी में examples/playwright

विशिष्ट Playwright वर्कफ़्लो

  1. अपने ब्राउज़र स्वचालन प्रवाह में चुनौती प्रकार का पता लगाएं।
  2. एपीआई के माध्यम से चुनौती पैरामीटर सबमिट करें।
  3. लौटाए गए टोकन/समाधान को लक्ष्य प्रवाह में इंजेक्ट करें।
  4. स्पष्ट टाइमआउट नीति के साथ पुनः प्रयास और विफलता रूटिंग को संभालें।

समर्थित कार्य नोट्स

विषय नोट
कैप्चा प्रकार (API) reCAPTCHA v2 और v3, Cloudflare Turnstile, GeeTest, DataDome और इमेज/टेक्स्ट कैप्चा।
शेष राशि समाधान खाते की शेष राशि से भुगतान होते हैं; डिकोड करने से पहले इसे जांचें।
पुनः प्रयास समाधान न मिलना अस्थायी है: आधिकारिक उदाहरण की तरह बैकऑफ़ के साथ पुनः प्रयास करें।
API बनाम एक्सटेंशन यह फ़्लो आपके स्क्रिप्ट के भीतर API का उपयोग करता है; ब्राउज़र एक्सटेंशन मैन्युअल ब्राउज़िंग के लिए नो-कोड पथ है।
समर्थित ब्राउज़र Playwright के माध्यम से Chromium, Firefox और WebKit (नमूना Chromium पर सत्यापित)।

एकीकरण संबंधी विचार

क्षेत्र यह क्यों मायने रखता है? अनुशंसित अभ्यास
प्रॉक्सी संगति टोकन प्रवाह में सत्यापन बेमेल जोखिम को कम करता है। समाधान और सबमिट पथ को स्वचालन संदर्भ में संरेखित रखें।
समयबाह्य अनुशासन कतार में रुकने और परतदार सीआई रन को रोकता है। नियतात्मक फ़ॉलबैक हैंडलिंग के साथ सीमित पुनर्प्रयासों का उपयोग करें।
प्रकार-विशिष्ट हैंडलिंग विभिन्न चुनौती वर्गों को अलग-अलग पेलोड फ़ील्ड की आवश्यकता होती है। एपीआई प्रकार के पृष्ठों से प्रारंभ करें और एक समय में एक प्रकार को मान्य करें।

कार्यान्वयन अगला चरण

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. पिछले अद्यतन…

सहायता

हमारा सिस्टम पूरी तरह से उपयोगकर्ता के अनुकूल और उपयोग में आसान होने के लिए डिज़ाइन किया गया है। अगर आपको इससे कोई परेशानी है, तो बस हमें ईमेल करें डीबीसी तकनीकी सहायता ईमेल कॉम, और एक सहायता एजेंट जल्द से जल्द आपसे संपर्क करेगा।

लाइव सहायता

उपलब्ध सोमवार से शुक्रवार (सुबह 10 बजे से शाम 4 बजे ईएसटी) Live support image. Link to live support page