सीडीपी एपीआई

स्क्रैपलेस स्क्रैपिंग ब्राउज़र मानक सीडीपी (क्रोम डेवलपर टूल्स प्रोटोकॉल) कार्यक्षमता का विस्तार करता है, ब्राउज़र स्वचालन क्षमताओं को बढ़ाने के लिए शक्तिशाली कस्टम फ़ंक्शंस की एक श्रृंखला जोड़ता है। यह दस्तावेज़ मुख्य रूप से कैप्चा (CAPTCHA) हैंडलिंग से संबंधित सीडीपी फ़ंक्शंस को कवर करता है।

कैप्चा सॉल्वर सुविधाएँ

सुविधा अवलोकन

स्क्रैपिंग ब्राउज़र में उन्नत कैप्चा (CAPTCHA) समाधान क्षमताएँ शामिल हैं, जो वेब पेजों पर पाए जाने वाले प्रचलित कैप्चा प्रकारों को स्वचालित रूप से संभालती हैं।

समर्थित कैप्चा प्रकार

  • reCaptcha
  • Cloudflare Turnstile
  • Cloudflare 5s Challenge
  • AWS WAF

इवेंट मॉनिटरिंग मैकेनिज्म

कोर इवेंट्स

स्क्रैपिंग ब्राउज़र कैप्चा (CAPTCHA) समाधान प्रक्रिया की निगरानी के लिए तीन मुख्य इवेंट प्रदान करता है:

इवेंट का नामविवरण
Captcha.detectedकैप्चा का पता चला
Captcha.solveFinishedकैप्चा समाधान समाप्त
Captcha.solveFailedकैप्चा समाधान विफल

इवेंट रिस्पॉन्स डेटा संरचना

फ़ील्डप्रकारविवरण
typestringकैप्चा प्रकार: recaptcha turnstile
successbooleanसमाधान परिणाम
messagestringस्टेटस संदेश: "NOT_DETECTED" "SOLVE_FINISHED" "SOLVE_FAILED" "INVALID"
token?stringसफलता पर लौटाया गया टोकन (वैकल्पिक)

कार्यान्वयन उदाहरण

// Listen for CAPTCHA solving events
const client = await page.createCDPSession();
 
client.on('Captcha.detected', (result) => {
  console.log('Captcha detected:', result);
});
 
await new Promise((resolve, reject) => {
  client.on('Captcha.solveFinished', (result) => {
    if (result.success) resolve();
  });
  client.on('Captcha.solveFailed', () =>
    reject(new Error('Captcha solve failed'))
  );
  setTimeout(() =>
      reject(new Error('Captcha solve timeout')),
    5 * 60 * 1000
  );
});

उन्नत कॉन्फ़िगरेशन एपीआई

स्क्रैपिंग ब्राउज़र कैप्चा (CAPTCHA) सॉल्वर के व्यवहार पर बारीक नियंत्रण के लिए उन्नत एपीआई की एक श्रृंखला प्रदान करता है। निम्नलिखित एपीआई समर्थित हैं:

एपीआई का नामविवरण
Captcha.setTokenकैप्चा सेवा के लिए प्रमाणीकरण टोकन सेट करता है
Captcha.setConfigसभी कैप्चा सॉल्वर मापदंडों को कॉन्फ़िगर करता है
Captcha.solveकैप्चा समाधान प्रक्रिया को मैन्युअल रूप से ट्रिगर करता है
Agent.clickमाउस क्लिक का अनुकरण करता है
Agent.liveURLवर्तमान सत्र पृष्ठ का लाइव यूआरएल प्राप्त करें
Agent.typeकीबोर्ड इनपुट का अनुकरण करता है।
Captcha.imageToTextछवि कैप्चा को हल करें

विस्तृत एपीआई विवरण

1. Captcha.setConfig

कैप्चा सॉल्वर के लिए सभी मापदंडों को कॉन्फ़िगर करता है।

await client.send('Captcha.setConfig', {
    config: JSON.stringify(
        {
            apiKey: "your-token",
            autoSolve: true,
            enabledForRecaptcha: true,
            enabledForRecaptchaV3: true,
            enabledForTurnstile: true
        }
    )
});

2. Captcha.solve

कैप्चा समाधान प्रक्रिया को मैन्युअल रूप से ट्रिगर करता है।

const { Puppeteer, createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
 
(async () => {
    const browser = await Puppeteer.connect({
      sessionName: 'sdk_test',
      sessionTTL: 180,
      proxyCountry: 'US',
      sessionRecording: true,
      defaultViewport: null
    });
    const page = await browser.newPage();
    await page.goto('https://www.scrapeless.com');
    const cdpSession = await createPuppeteerCDPSession(page);
 
    await cdpSession.solveCaptcha({ timeout: 30000 });
})();

3. Agent.click

माउस क्लिक का अनुकरण करता है।

const { Puppeteer, createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
 
(async () => {
    const browser = await Puppeteer.connect({
      sessionName: 'sdk_test',
      sessionTTL: 180,
      proxyCountry: 'US',
      sessionRecording: true,
      defaultViewport: null
    });
    const page = await browser.newPage();
    await page.goto('https://www.scrapeless.com');
    const cdpSession = await createPuppeteerCDPSession(page);
 
    await cdpSession.realClick('button');
})();

4. Agent.type

कीबोर्ड इनपुट का अनुकरण करता है।

const { Puppeteer, createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
 
(async () => {
    const browser = await Puppeteer.connect({
      sessionName: 'sdk_test',
      sessionTTL: 180,
      proxyCountry: 'US',
      sessionRecording: true,
      defaultViewport: null
    });
    const page = await browser.newPage();
    await page.goto('https://www.scrapeless.com');
    const cdpSession = await createPuppeteerCDPSession(page);
 
    await cdpSession.realFill('input', 'Hello, Scrapeless!');
})();

5. Agent.liveURL

वर्तमान सत्र पृष्ठ का लाइव यूआरएल प्राप्त करें।

const { Puppeteer, log as Log, createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
const logger = Log.withPrefix('puppeteer-example');
 
(async () => {
    const browser = await Puppeteer.connect({
      sessionName: 'sdk_test',
      sessionTTL: 180,
      proxyCountry: 'US',
      sessionRecording: true,
      defaultViewport: null
    });
    const page = await browser.newPage();
    await page.goto('https://www.scrapeless.com');
    const cdpSession = await createPuppeteerCDPSession(page);
 
    const { error, liveURL } = await cdpSession.liveURL();
    if (error) {
      logger.error('Failed to get current page URL:', error);
    } else {
      logger.info('Current page URL:', liveURL);
    }
    await browser.close();
})();

6. Captcha.imageToText

छवि कैप्चा को हल करें

const { Puppeteer, createPuppeteerCDPSession } = require('@scrapeless-ai/sdk');
 
const browser = await Puppeteer.connect({
  sessionName: 'sdk_test',
  sessionTTL: 180,
  proxyCountry: 'US',
  sessionRecording: true,
  defaultViewport: null
});
const page = await browser.newPage();
await page.goto('https://www.example.com');
const cdpSession = await createPuppeteerCDPSession(page);
 
await cdpSession.imageToText({
  imageSelector: '.captcha__image',
  inputSelector: 'input[name="captcha"]',
  timeout: 30000,
})