सीडीपी एपीआई
स्क्रैपलेस स्क्रैपिंग ब्राउज़र मानक सीडीपी (क्रोम डेवलपर टूल्स प्रोटोकॉल) कार्यक्षमता का विस्तार करता है, ब्राउज़र स्वचालन क्षमताओं को बढ़ाने के लिए शक्तिशाली कस्टम फ़ंक्शंस की एक श्रृंखला जोड़ता है। यह दस्तावेज़ मुख्य रूप से कैप्चा (CAPTCHA) हैंडलिंग से संबंधित सीडीपी फ़ंक्शंस को कवर करता है।
कैप्चा सॉल्वर सुविधाएँ
सुविधा अवलोकन
स्क्रैपिंग ब्राउज़र में उन्नत कैप्चा (CAPTCHA) समाधान क्षमताएँ शामिल हैं, जो वेब पेजों पर पाए जाने वाले प्रचलित कैप्चा प्रकारों को स्वचालित रूप से संभालती हैं।
समर्थित कैप्चा प्रकार
- reCaptcha
- Cloudflare Turnstile
- Cloudflare 5s Challenge
- AWS WAF
इवेंट मॉनिटरिंग मैकेनिज्म
कोर इवेंट्स
स्क्रैपिंग ब्राउज़र कैप्चा (CAPTCHA) समाधान प्रक्रिया की निगरानी के लिए तीन मुख्य इवेंट प्रदान करता है:
| इवेंट का नाम | विवरण |
|---|---|
Captcha.detected | कैप्चा का पता चला |
Captcha.solveFinished | कैप्चा समाधान समाप्त |
Captcha.solveFailed | कैप्चा समाधान विफल |
इवेंट रिस्पॉन्स डेटा संरचना
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
type | string | कैप्चा प्रकार: recaptcha turnstile |
success | boolean | समाधान परिणाम |
message | string | स्टेटस संदेश: "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,
})