CAPSOLVER
ब्लॉग
Playwright के साथ CapSolver को कैसे एकीकृत करें | संपूर्ण मार्गदर्शिका 2025

Playwright के साथ CapSolver को एकीकृत कैसे करें | संपूर्ण मार्गदर्शिका 2025

Logo of CapSolver

Rajinder Singh

Deep Learning Researcher

04-Sep-2025

Playwright क्या है?

Playwright Microsoft द्वारा विकसित एक आधुनिक ब्राउज़र ऑटोमेशन परीक्षण ढांचा है। यह क्रोमियम, फ़ायरफ़ॉक्स और वेबकिट (जो क्रोम, फ़ायरफ़ॉक्स और सफ़ारी के अनुरूप हैं) के लिए ऑटोमेशन का समर्थन करता है। यह ब्राउज़र नियंत्रण, तत्व चयन, फ़ॉर्म इंटरैक्शन, नेटवर्क इंटरसेप्शन और बहुत कुछ के लिए एक शक्तिशाली API प्रदान करता है—जिससे यह उन कार्यों के लिए आदर्श बन जाता है जिनके लिए वेब पेजों के साथ गहन बातचीत की आवश्यकता होती है।

Playwright की मुख्य विशेषताएँ

कोई भी ब्राउज़र, कोई भी प्लेटफ़ॉर्म, एक API

  • क्रॉस-ब्राउज़र: Playwright क्रोमियम, वेबकिट और फ़ायरफ़ॉक्स सहित सभी आधुनिक रेंडरिंग इंजन का समर्थन करता है।
  • क्रॉस-प्लेटफ़ॉर्म: विंडोज़, लिनक्स और macOS पर परीक्षण चलाएँ—स्थानीय रूप से या CI में—हेडलेस या हेडेड।
  • क्रॉस-भाषा: टाइपस्क्रिप्ट, जावास्क्रिप्ट, पायथन, .NET या जावा के साथ Playwright API का उपयोग करें।
  • टेस्ट मोबाइल वेब: एंड्रॉइड और मोबाइल सफ़ारी के लिए मूल रूप से Google क्रोम का अनुकरण करें। वही रेंडरिंग इंजन आपके डेस्कटॉप और क्लाउड में चलता है।

विशिष्ट उपयोग के मामले

  • डायनामिक सामग्री को स्क्रैप करना: जावास्क्रिप्ट के माध्यम से रेंडर किए गए डेटा को निकालें।
  • जटिल इंटरैक्शन को संभालना: उन पृष्ठों के लिए उपयोगी है जिनके लिए डेटा तक पहुँचने के लिए लॉगिन या बहु-चरण वर्कफ़्लो की आवश्यकता होती है।
  • SPA ऐप्स से डेटा निकालना: Vue या React जैसे फ़्रेमवर्क के साथ बनाए गए पृष्ठों को क्रॉल करें।
  • स्वचालित परीक्षण: डेटा एकत्र करते हुए पृष्ठ कार्यक्षमता को मान्य करें।
  • हेडलेस मोड ऑटोमेशन: GUI के बिना सभी क्रियाएँ करें, सर्वर वातावरण के लिए उपयुक्त।

Playwright का बुनियादी उपयोग

Node.js में Playwright का उपयोग करना:

bash Copy
npm i playwright  
npx playwright install  # सभी ब्राउज़र (क्रोमियम, फ़ायरफ़ॉक्स, वेबकिट) स्थापित करें

उदाहरण: CapSolver से सभी ब्लॉग शीर्षक प्राप्त करें

नीचे दिए गए उदाहरण में, हम CapSolver ब्लॉग (https://www.capsolver.com/blog/All) पर नेविगेट करने और पृष्ठ से सभी <h5> ब्लॉग पोस्ट शीर्षक लेने के लिए Playwright का उपयोग करते हैं।

javascript Copy
const { chromium } = require('playwright');

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
    });

    const [page] = context.pages();
    await page.goto('https://www.capsolver.com/blog/All');

    const h5Titles = await page.evaluate(() => {
        const headings = Array.from(document.querySelectorAll('h5'));
        return headings.map(heading => heading.textContent.trim());
    });

    console.log(h5Titles);
    await context.close();
})();

Playwright के साथ CapSolver एक्सटेंशन को कैसे एकीकृत करें

Playwright नियमित ब्राउज़र की तरह ब्राउज़र एक्सटेंशन लोड करने के लिए काफी शक्तिशाली है।

  1. आधिकारिक GitHub से नवीनतम CapSolver एक्सटेंशन ZIP डाउनलोड करें और निकालें।
  2. --disable-extensions-except और --load-extension का उपयोग करके Playwright लॉन्च तर्कों में एक्सटेंशन पथ निर्दिष्ट करें।
javascript Copy
const { chromium } = require('playwright');

const extensionPath = 'path/to/capsolver extension';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
        ],
    });
    
    const [page] = context.pages();
    await page.goto('https://www.capsolver.com/blog/All');
    await browser.close();
})();

CapSolver एक्सटेंशन का उपयोग करके reCAPTCHA v2 को हल करना

CAPTCHA प्रकार जैसे reCAPTCHA v2/v3, Cloudflare Turnstile, AWS WAF, हजारों वेबसाइटों में व्यापक रूप से उपयोग किए जाते हैं। उनकी लोकप्रियता के बावजूद, इन CAPTCHAs में आम तौर पर सुसंगत और पता लगाने योग्य DOM संरचनाएँ होती हैं। यहीं पर CapSolver एक्सटेंशन आता है - यह मैन्युअल इंटरैक्शन की आवश्यकता के बिना स्वचालित रूप से उनका पता लगाता है और हल करता है।

आइए reCAPTCHA v2 को एक उदाहरण के रूप में लें कि Playwright में CapSolver एक्सटेंशन का उपयोग करके इसे कैसे हल किया जाए।
नोट: अन्यथा कहा गया है, निम्नलिखित उदाहरण क्लिक मोड (/assets/config.js -> reCaptchaMode: 'click') का उपयोग करते हैं।

⚠️ एक्सटेंशन ज़िप फ़ाइल को अनज़िप करना न भूलें और /assets/config.js में अपनी apiKey कॉन्फ़िगर करें

javascript Copy
const { chromium } = require('playwright');

// चरण 1: GitHub से एक्सटेंशन डाउनलोड करें: https://github.com/capsolver/capsolver-browser-extension/releases
// चरण 2: एक्सटेंशन फ़ाइल को अनज़िप करें और /assets/config.js में अपनी apiKey सेट करें
const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
            '--lang=en-US'
        ],
    });

    const [page] = context.pages();
    await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
    await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');

    // एक्सटेंशन स्वचालित रूप से reCAPTCHA का पता लगाएगा और हल करेगा।
    await page.waitForTimeout(15000); // हल करने के लिए प्रतीक्षा करें
    await page.click('button[type="submit"]');
    await page.waitForTimeout(5000);
    await context.close();
})();

⚠️ CapSolver एक्सटेंशन कई उपयोगी कॉन्फ़िगरेशन विकल्पों का भी समर्थन करता है। नीचे कुछ सामान्य उदाहरण दिए गए हैं (नोट: सभी कॉन्फ़िगरेशन /assets/config.js में सेट हैं)

कॉन्फ़िगरेशन विकल्प: solvedCallback

जैसा कि आपने देखा होगा, पिछले कोड में हमने सबमिट बटन पर क्लिक करने से पहले पृष्ठ लोड होने के बाद 15 सेकंड का इंतजार किया था। यह देरी का उद्देश्य CapSolver एक्सटेंशन को reCAPTCHA को स्वचालित रूप से हल करने के लिए पर्याप्त समय देना था। हालाँकि, यह दृष्टिकोण आदर्श नहीं है—कभी-कभी CAPTCHA बहुत तेज़ी से हल हो जाता है, और खराब नेटवर्क की स्थिति में, इसमें 15 सेकंड से भी अधिक समय लग सकता है।

यहीं पर solvedCallback आता है। यह CAPTCHA हल होने के बाद एक कॉलबैक को ट्रिगर करके एक बेहतर समाधान प्रदान करता है, जिससे आपको सूचित किया जाता है कि सत्यापन पूरा हो गया है। आप /assets/config.js में एक कस्टम फ़ंक्शन नाम परिभाषित करके solvedCallback को कॉन्फ़िगर कर सकते हैं—डिफ़ॉल्ट रूप से, यह captchaSolvedCallback है। फिर, ब्राउज़र संदर्भ के भीतर इस फ़ंक्शन को उजागर करने के लिए Playwright में page.exposeFunction का उपयोग करें।

आइए अब इस दृष्टिकोण का उपयोग करके अपने पिछले कोड को बेहतर बनाएँ।

javascript Copy
const { chromium } = require('playwright');

const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
            '--lang=en-US'
        ],
    });

    const [page] = context.pages();
    await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
    await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');

    await page.exposeFunction('captchaSolvedCallback', async () => {
        console.log('Captcha solved!');

        const iframe = await page.$('iframe[src*="recaptcha"]');
        if (iframe) {
            const frame = await iframe.contentFrame();
            const finished = await frame.evaluate(() => {
                const element = document.querySelector('.recaptcha-checkbox-border');
                return element && window.getComputedStyle(element).display === 'none';
            });

            if (finished) {
                console.log('Verification completed!');
                await page.click('button[type="submit"]');
                await page.waitForTimeout(3000);
                await context.close();
            } else {
                console.log('Verification not complete. Retrying...');
            }
        }
    });
})();

reCAPTCHA v2 के लिए, कभी-कभी कई इमेज चुनौतियाँ दिखाई दे सकती हैं। इसलिए प्रत्येक चुनौती के बाद, हम जांचते हैं कि क्या "मैं रोबोट नहीं हूँ" चेकबॉक्स चेक किया गया है—यदि यह चला गया है, तो सत्यापन पूरा माना जाता है।

कॉन्फ़िगरेशन विकल्प: manualSolving

पिछले उदाहरणों में, CAPTCHA को हल करना पृष्ठ लोड होने पर तुरंत शुरू हो गया था। हालाँकि, कुछ परिदृश्यों में, CAPTCHA को हल करने को ट्रिगर करने से पहले आपको पहले अन्य कार्य करने की आवश्यकता हो सकती है—जैसे उपयोगकर्ता नाम/पासवर्ड दर्ज करना—पहले शुरू करने से टोकन की समय सीमा समाप्त हो सकती है।

इसे संभालने के लिए, /assets/config.js में manualSolving: true सेट करें, जो आपको CAPTCHA-हल करने की प्रक्रिया को मैन्युअल रूप से ट्रिगर करने की अनुमति देता है।

हल करने के दो तरीके हैं:

  1. एक्सटेंशन में CapSolver बटन पर क्लिक का अनुकरण करें।
  2. निष्पादित करें: window.postMessage({ type: 'capsolverSolve' });

⚠️ नोट: यह सुविधा केवल v1.16.0 से अधिक संस्करणों में समर्थित है!

उदाहरण:

javascript Copy
const { chromium } = require('playwright');

const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
            '--lang=en-US'
        ],
    });

    const [page] = context.pages();
    await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
    await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');

    // क्रेडेंशियल भरने का अनुकरण करें
    await page.evaluate(() => {
        const inputA = document.querySelector('input[name="ex-a"]');
        inputA.value = 'username';
        const inputB = document.querySelector('input[name="ex-b"]');
        inputB.value = 'password';
    });

    // अन्य देरी या उपयोगकर्ता गतिविधि का अनुकरण करें
    for (let i = 1; i <= 5; i++) {
        await page.waitForTimeout(1000);
        console.log(`Waited ${i} seconds...`);
    }

    console.log('Start solving CAPTCHA...');

    // विधि 1: CapSolver बटन पर क्लिक करने का अनुकरण करें
    await page.evaluate(() => {
        document.querySelector('#capsolver-solver-tip-button').click();
    });

    // विधि 2: postMessage का उपयोग करके ट्रिगर करें
    // await page.evaluate(() => {
    //     window.postMessage({ type: 'capsolverSolve' });
    // });

    await page.exposeFunction('captchaSolvedCallback', async () => {
        console.log('Captcha solved!');

        const iframe = await page.$('iframe[src*="recaptcha"]');
        if (iframe) {
            const frame = await iframe.contentFrame();
            const finished = await frame.evaluate(() => {
                const element = document.querySelector('.recaptcha-checkbox-border');
                return element && window.getComputedStyle(element).display === 'none';
            });

            if (finished) {
                console.log('Verification completed!');
                await page.click('button[type="submit"]');
                await page.waitForTimeout(3000);
                await context.close();
            } else {
                console.log('Verification not complete. Try again.');
            }
        }
    });
})();

कॉन्फ़िगरेशन विकल्प: reCaptchaMode

reCaptchaMode सेटिंग दो मोड का समर्थन करती है: click और token

  • क्लिक मोड मानव संपर्क का अनुकरण करता है—इमेज चुनौतियों के माध्यम से क्लिक करना।
  • टोकन मोड UI इंटरैक्शन के बिना समाधान टोकन प्राप्त करने के लिए सीधे CapSolver API का उपयोग करता है।

यदि आप click मोड का उपयोग करके कई राउंड इमेज चयन का अनुभव कर रहे हैं, तो यह कम ब्राउज़र फ़िंगरप्रिंट स्कोर के कारण हो सकता है। बेहतर विश्वसनीयता के लिए token मोड पर स्विच करने की अनुशंसा की जाती है।

कॉन्फ़िगरेशन विकल्प: showSolveButton

जब showSolveButton को false पर सेट किया जाता है (डिफ़ॉल्ट true है), तो CapSolver बटन अब पृष्ठ पर प्रदर्शित नहीं होगा। हालाँकि, यह सामान्य CAPTCHA-हल करने की कार्यक्षमता को प्रभावित नहीं करेगा।

कॉन्फ़िगरेशन विकल्प: useProxy

useProxy: true सेट करने के बाद, आप निम्नलिखित पैरामीटर निर्दिष्ट कर सकते हैं: proxyType, hostOrIp, port, proxyLogin, और proxyPassword। इस सेटअप के साथ, हम CAPTCHA को हल करने के लिए आपके कस्टम प्रॉक्सी का उपयोग करेंगे। आपको अपना प्रॉक्सी कब उपयोग करना चाहिए? आमतौर पर, निम्नलिखित स्थितियों में:

  1. आपका प्रॉक्सी बेहतर गुणवत्ता प्रदान करता है (जैसे, आपके प्रॉक्सी का उपयोग करके उत्पन्न reCAPTCHA टोकन उच्च स्कोर प्राप्त करते हैं) या तेज़ गति से हल करना;
  2. कुछ मामलों में, CAPTCHA को हल करने के लिए उपयोग किया जाने वाला IP टोकन सबमिट करने के लिए उपयोग किए जाने वाले IP के समान होना चाहिए।

उपरोक्त कुछ सामान्यतः उपयोग किए जाने वाले कॉन्फ़िगरेशन विकल्प हैं। आप अपनी वास्तविक आवश्यकताओं के अनुसार अन्य सेटिंग्स को समायोजित कर सकते हैं। यदि आपके कोई प्रश्न हैं, तो कृपया हमारे ग्राहक समर्थन से संपर्क करें।

CapSolver एक्सटेंशन का उपयोग करके ImageToText CAPTCHAs को हल करना

reCAPTCHA, Cloudflare Turnstile, AWS WAF, या GeeTest जैसे तीसरे पक्ष के CAPTCHAs के विपरीत, एक अन्य प्रकार का CAPTCHA है जिसमें किसी छवि से अक्षरों या अंकों को पहचानने की आवश्यकता होती है। हम इन्हें ImageToText CAPTCHAs कहते हैं। वे आम तौर पर इस तरह दिखते हैं:

ImageToText वेबसाइट व्यवस्थापकों द्वारा स्वयं लागू किया गया एक CAPTCHA है। तीसरे पक्ष के CAPTCHAs के विपरीत, ImageToText CAPTCHAs वेबसाइट के मालिकों द्वारा कस्टम-निर्मित होते हैं। क्योंकि ये CAPTCHAs विभिन्न वेबसाइटों और पृष्ठों पर प्लेसमेंट में भिन्न होते हैं, इसलिए CapSolver एक्सटेंशन स्वचालित रूप से पता नहीं लगा सकता है कि कौन सी छवियां CAPTCHAs हैं। इसलिए, आपको अपने कोड में CapSolver एक्सटेंशन को स्पष्ट रूप से सूचित करना होगा। यहां बताया गया है कि यह कैसे करें:

  1. CAPTCHA के इमेज एलिमेंट में मान 0 के साथ एक capsolver-image-to-text-source विशेषता जोड़ें;
  2. इनपुट फ़ील्ड में मान 0 के साथ एक capsolver-image-to-text-result विशेषता जोड़ें जहाँ परिणाम भरा जाना चाहिए।

इन विशेषताओं—capsolver-image-to-text-source और capsolver-image-to-text-result—को /assets/config.js में क्रमशः textCaptchaSourceAttribute और textCaptchaResultAttribute फ़ील्ड का उपयोग करके कॉन्फ़िगर किया जा सकता है।

आइए साइट का उपयोग करके एक उदाहरण के माध्यम से चलते हैं:
https://captcha.com/demos/features/captcha-demo.aspx

सबसे पहले, CAPTCHA इमेज एलिमेंट और परिणाम इनपुट फ़ील्ड का पता लगाने के लिए पृष्ठ स्रोत का निरीक्षण करें। इस मामले में:

  • CAPTCHA इमेज एलिमेंट ID: demoCaptcha_CaptchaImage
  • परिणाम के लिए इनपुट फ़ील्ड ID: captchaCode
    (नीचे स्क्रीनशॉट)

अब, आइए इन तत्वों को उचित रूप से चिह्नित करके इस CAPTCHA को स्वचालित रूप से हल करने के लिए Playwright का उपयोग करें:

javascript Copy
const { chromium } = require('playwright');

// चरण 1: GitHub से एक्सटेंशन प्राप्त करें (https://github.com/capsolver/capsolver-browser-extension/releases)
// चरण 2: एक्सटेंशन ज़िप फ़ाइल को अनज़िप करें और /assets/config.js में अपनी apiKey कॉन्फ़िगर करें
const extensionPath = 'path/to/CapSolver Browser Extension-v1.16.0';

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: [
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
            '--lang=en-US'
        ],
    });

    const [page] = context.pages();
    await page.goto('https://captcha.com/demos/features/captcha-demo.aspx');
    await page.waitForSelector('#demoCaptcha_CaptchaImage');

    // CapSolver एक्सटेंशन को बताएं कि CAPTCHA छवि कहाँ स्थित है
    await page.evaluate(() => {
        const imgElement = document.querySelector('#demoCaptcha_CaptchaImage');
        if (imgElement) {
            imgElement.setAttribute('capsolver-image-to-text-source', '0');
        }
    });

    // CapSolver एक्सटेंशन को बताएं कि पहचान परिणाम कहाँ इनपुट किया जाना चाहिए
    await page.evaluate(() => {
        const resultElement = document.querySelector('#captchaCode');
        if (resultElement) {
            resultElement.setAttribute('capsolver-image-to-text-result', '0');
        }
    });

    // CAPTCHA के हल होने और प्रपत्र सबमिट करने की प्रतीक्षा करें
    await page.exposeFunction('captchaSolvedCallback', async () => {
        console.log('Captcha solved!');
        await page.waitForTimeout(3000);
        await page.click('#validateCaptchaButton');
        await page.waitForTimeout(3000);
        await context.close();
    });
})();

परिणाम:

Playwright के साथ CapSolver API को कैसे एकीकृत करें

CapSolver एक्सटेंशन का उपयोग करना सुविधाजनक और त्वरित है, लेकिन यदि आप एक अनुभवी डेवलपर हैं, तो हम इसके बजाय API एकीकरण का उपयोग करने की अत्यधिक अनुशंसा करते हैं। एक्सटेंशन-आधारित विधि की तुलना में, API दृष्टिकोण कई महत्वपूर्ण लाभ प्रदान करता है:

  1. अधिक अनुकूलन योग्य पैरामीटर - आप लगभग सभी CAPTCHA परिदृश्यों के बेहतर ढंग से फिट होने के लिए अपने अनुरोधों को ठीक कर सकते हैं।
  2. अधिक नियंत्रण - आप तय कर सकते हैं कि CAPTCHA को कब और कैसे हल करना है।
  3. अधिक विस्तृत त्रुटि संदेश - ये डेवलपर्स को लक्षित अनुकूलन करने में मदद करते हैं।

इससे पहले कि हम कोड डेमो में गोता लगाएँ, यहाँ CapSolver API का उपयोग करने का तरीका बताया गया है:

एक कार्य बनाने के लिए, आपको CapSolver को एक JSON ऑब्जेक्ट भेजना होगा। इस JSON में आपका clientKey, websiteURL, websiteKey, और अन्य डेटा शामिल हैं। ये फ़ील्ड CAPTCHA प्रकार और वेबसाइट के आधार पर भिन्न होते हैं।
👉 विवरण के लिए, हमारे दस्तावेज़ देखें: दस्तावेज़ीकरण

CapSolver API के साथ reCAPTCHA v2 को हल करना

reCAPTCHA v2 को हल करने से पहले, कृपया यहाँ दस्तावेज़ देखें:
📖 ReCaptchaV2

यह मार्गदर्शिका बताती है कि कार्य बनाते समय कौन से JSON पैरामीटर शामिल करना हैं।
इसके अतिरिक्त, आप अपने API अनुरोधों के लिए JSON डेटा जल्दी से उत्पन्न करने के लिए CapSolver एक्सटेंशन का उपयोग कर सकते हैं।
मदद के लिए यह ब्लॉग देखें:
🔗 JSON डेटा प्राप्त करें


आइए निम्नलिखित उदाहरण लेते हैं:
🔗 https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php

इस पृष्ठ के लिए कार्य बनाने के लिए आवश्यक JSON है:

json Copy
{
    "type": "ReCaptchaV2TaskProxyLess",
    "websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
    "websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
}

हम हमारे दस्तावेज़ में API का उपयोग करने के लिए जावास्क्रिप्ट कोड नमूने भी प्रदान करते हैं:

Playwright में एकीकरण:

javascript Copy
const { chromium } = require('playwright');
const axios = require('axios');

// अपनी API कुंजी से बदलें
const api_key = 'YOUR_API_KEY';
const captcha_type = 'ReCaptchaV2TaskProxyLess';
const site_key = '6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9';
const site_url = 'https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php';

async function capSolver() {
    const payload = {
        clientKey: api_key,
        task: {
            type: captcha_type,
            websiteKey: site_key,
            websiteURL: site_url
        }
    };

    try {
        const res = await axios.post('https://api.capsolver.com/createTask', payload);
        const task_id = res.data.taskId;
        if (!task_id) {
            console.log('कार्य बनाने में विफल:', res.data);
            return;
        }
        console.log('taskId प्राप्त हुआ:', task_id);

        while (true) {
            await new Promise(resolve => setTimeout(resolve, 1000)); // 1 सेकंड के लिए विलंब

            const getResultPayload = { clientKey: api_key, taskId: task_id };
            const resp = await axios.post('https://api.capsolver.com/getTaskResult', getResultPayload);
            const status = resp.data.status;

            if (status === 'ready') {
                return resp.data.solution.gRecaptchaResponse;
            }
            if (status === 'failed' || resp.data.errorId) {
                console.log('हल करने में विफल! प्रतिक्रिया:', resp.data);
                return;
            }
        }
    } catch (error) {
        console.error('त्रुटि:', error);
    }
}

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: ['--lang=en-US'],
    });

    const [page] = context.pages();
    await page.goto('https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php');
    await page.waitForSelector('form[action="/recaptcha-v2-checkbox.php"]');

    const token = await capSolver();
    console.log("टोकन:", token);

    // टोकन मान सेट करें
    await page.evaluate((token) => {
        const textarea = document.getElementById('g-recaptcha-response');
        if (textarea) {
            textarea.value = token;
        }
    }, token);

    await page.click('button[type="submit"]');
    await page.waitForTimeout(5000);
    await context.close();
})();

CapSolver API के साथ ImageToText को हल करना

हम अभी भी https://captcha.com/demos/features/captcha-demo.aspx के उदाहरण का उपयोग करते हैं, जहाँ कैप्चा छवि तत्व में id demoCaptcha_CaptchaImage है, और परिणाम इनपुट तत्व में id captchaCode है, जैसा कि निम्न छवि में दिखाया गया है:

ImageToTextTask के लिए, हमें CapSolver को कैप्चा छवि का बेस64 मान पास करना होगा। उदाहरण कोड इस प्रकार है:

javascript Copy
const { chromium } = require('playwright');
const axios = require('axios');

// अपनी API कुंजी से बदलें
const api_key = 'YOUR_API_KEY';
const captcha_type = 'ImageToTextTask';
const site_url = 'https://captcha.com/demos/features/captcha-demo.aspx';

async function capSolver(base64Image) {
    const payload = {
        clientKey: api_key,
        task: {
            type: captcha_type,
            websiteURL: site_url,
            body: base64Image,
        }
    };

    try {
        const res = await axios.post('https://api.capsolver.com/createTask', payload);

        const status = res.data.status;
        if (status === 'ready') {
            return res.data.solution.text;
        }
        if (status === 'failed' || res.data.errorId) {
            console.log('हल करने में विफल! प्रतिक्रिया:', res.data);
            return "";
        }
    } catch (error) {
        console.error('त्रुटि:', error);
    }
}

(async () => {
    const context = await chromium.launchPersistentContext('', {
        headless: false,
        viewport: { width: 1920, height: 1080 },
        args: ['--lang=en-US'],
    });

    const [page] = context.pages();
    await page.goto('https://captcha.com/demos/features/captcha-demo.aspx');
    await page.waitForSelector('#demoCaptcha_CaptchaImage');

    // कैप्चा छवि का बेस64 मान प्राप्त करें
    const captchaImage = await page.evaluate(() => {
        const img = document.querySelector('img[id="demoCaptcha_CaptchaImage"]');
        return img ? img.getAttribute('src') : null;
    });
    const base64Image = captchaImage.split(',')[1];

    const text = await capSolver(base64Image);
    console.log("पाठ:", text);

    // हल किया गया कैप्चा पाठ सेट करें
    await page.evaluate((text) => {
        document.getElementById('captchaCode').value = text;
    }, text);

    await page.click('#validateCaptchaButton');
    await page.waitForTimeout(5000);
    await context.close();
})();

इसके अतिरिक्त, कुछ विशेष ImageToText प्रकारों के लिए, आप सटीकता में सुधार के लिए विभिन्न मॉडल निर्दिष्ट कर सकते हैं। विवरण के लिए, कृपया हमारे दस्तावेज़ देखें:
https://docs.capsolver.com/en/guide/recognition/ImageToTextTask/

उपयोगी संदर्भ

CapSolver एक्सटेंशन की विशेषता वाले डेमो वीडियो:

इसके अतिरिक्त, CapSolver एक डेवलपर राजस्व साझाकरण कार्यक्रम प्रदान करता है, जिससे डेवलपर्स और भागीदार CapSolver समाधानों को एकीकृत करने या उनका प्रचार करके कमीशन अर्जित कर सकते हैं। यह दूसरों को कुशलतापूर्वक कैप्चा को हल करने में मदद करते हुए अपने काम का मुद्रीकरण करने का एक शानदार तरीका है। पूर्ण विवरण के लिए, देखें:
CapSolver डेवलपर योजना

निष्कर्ष

Playwright की मजबूत विशेषताएँ, CapSolver की CAPTCHA को संभालने की क्षमता के साथ मिलकर, वेब स्वचालन के लिए एक व्यापक समाधान प्रदान करती हैं। चाहे सुविधा के लिए CapSolver एक्सटेंशन का उपयोग कर रहे हों या अधिक नियंत्रण के लिए API का उपयोग कर रहे हों, यह एकीकरण जटिल कार्यों को सुव्यवस्थित करता है और स्वचालन वर्कफ़्लो को बढ़ाता है। केवल CAPTCHA को हल करने से परे, याद रखें कि CapSolver डेवलपर राजस्व साझाकरण कार्यक्रम भी प्रदान करता है, जो उनके समाधानों को एकीकृत करने या उनका प्रचार करके कमीशन अर्जित करने का एक उत्कृष्ट अवसर प्रदान करता है।

अनुपालन अस्वीकरण: इस ब्लॉग पर प्रदान की गई जानकारी केवल सूचनात्मक उद्देश्यों के लिए है। CapSolver सभी लागू कानूनों और विनियमों का पालन करने के लिए प्रतिबद्ध है। CapSolver नेटवर्क का उपयोग अवैध, धोखाधड़ी या दुरुपयोग करने वाली गतिविधियों के लिए करना सख्त वर्जित है और इसकी जांच की जाएगी। हमारे कैप्चा समाधान उपयोगकर्ता अनुभव को बेहतर बनाने के साथ-साथ सार्वजनिक डेटा क्रॉलिंग के दौरान कैप्चा कठिनाइयों को हल करने में 100% अनुपालन सुनिश्चित करते हैं। हम अपनी सेवाओं के जिम्मेदार उपयोग की प्रोत्साहना करते हैं। अधिक जानकारी के लिए, कृपया हमारी सेवा की शर्तें और गोपनीयता नीति पर जाएं।

अधिक

क्लाउडफ़्लेर त्रुटि 1006, 1007, 1008
क्लाउडफ़्लेयर त्रुटि 1006, 1007, 1008 हल करने का समाधान | कैसे ठीक करें

क्लाउडफ़ेयर त्रुटि 1006, 1007 या 1008 के साथ परेशान हैं? इन एक्सेस अस्वीकृतियों को हल करने और अपने वेब क्रॉलिंग अनुभव को बढ़ाने के लिए व्यावहारिक समाधान सीखें।

Cloudflare
Logo of CapSolver

Nikolai Smirnov

05-Dec-2025

AI-LLM: भविष्य का समाधान रिस्क नियंत्रण के लिए छवि पहचान एवं CAPTCHA हल करना
एआई-एलएलएम: जोखिम नियंत्रण छवि संज्ञान और कैप्चा हल करने के लिए भविष्य का समाधान

एक गहरा अध्ययन कैसे बड़े भाषा मॉडल ग्राफिकल कैप्चा हल करते हैं, शून्य-शॉट तर्क और CNN की यथार्थता के संयोजन के माध्यम से आधुनिक जोखिम नियंत्रण के लिए।

Logo of CapSolver

Rajinder Singh

05-Dec-2025

कैप्चा कैसे हल करें जब वेब स्क्रैपिंग करते हैं Scrapling और CapSolver के साथ
कैप्चा कैसे हल करें जब वेब स्क्रैपिंग करते हैं Scrapling और CapSolver के साथ

स्क्रैपलिंग + कैपसॉल्वर रीकैपचा v2/v3 और क्लाउडफ़्लेयर टर्नस्टाइल बायपास के साथ स्वचालित स्क्रैपिंग सक्षम करता है।

web scraping
Logo of CapSolver

Rajinder Singh

05-Dec-2025

सेलेनियम में यूजर-एजेंट बदलें
यूजर-एजेंट बदलें | सेलेनियम में चरण एवं शीर्ष विधियां

Selenium में User Agent बदलना बहुत सारे वेब स्क्रैपिंग कार्यों के लिए एक महत्वपूर्ण कदम है। यह ऑटोमेशन स्क्रिप्ट को एक सामान्य ब्राउज़र के रूप में छिपाने में मदद करता है...

The other captcha
Logo of CapSolver

Lucas Mitchell

05-Dec-2025

कैपसॉल्वर एक्सटेंशन के साथ क्लाउडफ़्लेयर टर्नस्टाइल को हल करने के लिए `क्रियाकलाप` के लिए आवश्यक है कैसे निर्धारित करें
कैसे पहचानें कि `कार्य` क्लाउडफ़ेयर टर्नस्टाइल को हल करने के लिए आवश्यक है कैपसॉल्वर एक्सटेंशन के साथ

क्लाउडफ़्लेयर टर्नस्टाइल प्रभावी कैप्चा हल करने के लिए कार्रवाई की पहचान सीखें। Capsolver के उपकरणों और तकनीकों का उपयोग करने के लिए हमारे चरण-दर-चरण गाइड का अनुसरण करें।

Cloudflare
Logo of CapSolver

Rajinder Singh

05-Dec-2025

9प्रॉक्सी
9Proxy की शक्ति की खोज करें: व्यापक समीक्षा

इस लेख में, हम आपको 9proxy क्या है और जो वे प्रदान करते हैं सेवाएं दिखाएंगे।

web scraping
Logo of CapSolver

Rajinder Singh

04-Dec-2025