इस पृष्ठ का उपयोग तब करें जब आपके Playwright स्वचालन प्रवाह को व्यावहारिक एपीआई एकीकरण मार्गदर्शन के साथ एक स्थिर कैप्चा समाधान पथ की आवश्यकता हो।
Death By Captcha (DBC) Playwright स्क्रिप्ट्स को मैन्युअल इंटरैक्शन के बजाय API के माध्यम से कैप्चा चुनौतियों को हल करने देता है: आपकी स्क्रिप्ट पेज से चुनौती पैरामीटर निकालती है, DBC से समाधान का अनुरोध करती है, परिणाम को वापस पेज में डालती है और फ़्लो जारी रखती है। यह पेज क्विकस्टार्ट है: इंस्टॉलेशन, चलाने योग्य कोड उदाहरण और समर्थित कार्यों के नोट्स।
Node.js:
npm install playwright deathbycaptcha-lib
Python:
pip install deathbycaptcha-official
क्लाइंट में अपने DBC खाते के क्रेडेंशियल का उपयोग करें। फ़्लो चलाने से पहले खाता बनाएं और मूल्य व शेष राशि देखें।
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
| विषय | नोट |
|---|---|
| कैप्चा प्रकार (API) | reCAPTCHA v2 और v3, Cloudflare Turnstile, GeeTest, DataDome और इमेज/टेक्स्ट कैप्चा। |
| शेष राशि | समाधान खाते की शेष राशि से भुगतान होते हैं; डिकोड करने से पहले इसे जांचें। |
| पुनः प्रयास | समाधान न मिलना अस्थायी है: आधिकारिक उदाहरण की तरह बैकऑफ़ के साथ पुनः प्रयास करें। |
| API बनाम एक्सटेंशन | यह फ़्लो आपके स्क्रिप्ट के भीतर API का उपयोग करता है; ब्राउज़र एक्सटेंशन मैन्युअल ब्राउज़िंग के लिए नो-कोड पथ है। |
| समर्थित ब्राउज़र | Playwright के माध्यम से Chromium, Firefox और WebKit (नमूना Chromium पर सत्यापित)। |
| क्षेत्र | यह क्यों मायने रखता है? | अनुशंसित अभ्यास |
|---|---|---|
| प्रॉक्सी संगति | टोकन प्रवाह में सत्यापन बेमेल जोखिम को कम करता है। | समाधान और सबमिट पथ को स्वचालन संदर्भ में संरेखित रखें। |
| समयबाह्य अनुशासन | कतार में रुकने और परतदार सीआई रन को रोकता है। | नियतात्मक फ़ॉलबैक हैंडलिंग के साथ सीमित पुनर्प्रयासों का उपयोग करें। |
| प्रकार-विशिष्ट हैंडलिंग | विभिन्न चुनौती वर्गों को अलग-अलग पेलोड फ़ील्ड की आवश्यकता होती है। | एपीआई प्रकार के पृष्ठों से प्रारंभ करें और एक समय में एक प्रकार को मान्य करें। |
Playwright कैप्चा सॉल्वर रोलआउट के लिए, पहले एक कैप्चा प्रकार को मान्य करें, फिर उत्पादन पैमाने के लिए विश्वसनीयता और मूल्य निर्धारण जांच के साथ कवरेज का विस्तार करें।