
Rajinder Singh
Deep Learning Researcher

TL;DR: यह गाइड Playwright ब्राउजर ऑटोमेशन में CAPTCHA को बाउंस करने के तरीके को दिखाता है जो AI-संचालित हल करता है। reCAPTCHA और Cloudflare Turnstile चुनौतियों को स्वचालित रूप से संभालने के लिए कार्य करने वाले कोड उदाहरण सीखें। CapSolver के Playwright इंटीग्रेशन देखें
Playwright के साथ ब्राउजर ऑटोमेशन बनाते समय CAPTCHA चुनौतियों का सामना एक सामान्य बाधा होता है जो आपके कार्य प्रवाह को रोक सकता है। चाहे आप डेटा स्क्रैप कर रहे हों, स्वचालित परीक्षण चला रहे हों या बाजार बुद्धिमत्ता एकत्र कर रहे हों, ये चुनौतियां ऑटोमेशन प्रक्रिया को रोक देती हैं और हस्तक्षेप की आवश्यकता होती है—जो अंततः स्क्रिप्टिंग के उद्देश्य के विपरीत होता है।
इस गाइड में आप Playwright ऑटोमेशन में AI-संचालित CAPTCHA बाउंस के एकीकरण के बारे में सीखेंगे, जो reCAPTCHA और Cloudflare Turnstile चुनौतियों को बिना किसी बाधा के स्वचालित रूप से संभालने में सक्षम बनाता है।
CAPTCHA तब दिखाई देते हैं जब वेबसाइटें व्यावहारिक मानव ब्राउजिंग पैटर्न से अलग व्यवहार का पता लगाती हैं। सामान्य उत्प्रेरक निम्नलिखित हैं:
Playwright का उपयोग करने वाले विकासकर्ता के लिए, CAPTCHA क्यों दिखाई देते हैं, इसकी समझ दोनों रोकथाम और जब भी घटित होने पर उन्हें बर्ताव करने में मदद करती है।
AI-संचालित CAPTCHA हल करने वाली सेवाएं जैसे CapSolver मशीन लर्निंग और कंप्यूटर दृष्टि का उपयोग करके चुनौतियों की पहचान और हल करती हैं। वातावरण आसानी से Playwright ऑटोमेशन में एकीकृत होता है:
इस स्वचालित दृष्टिकोण से हस्तक्षेप की आवश्यकता नहीं होती है और आपके ऑटोमेशन को लगातार चलाए रखता है।
उद्योग के आंकड़ों के अनुसार, AI-संचालित समाधान 95-99% सटीकता दर तक पहुंचते हैं सामान्य चुनौति प्रकार के लिए, जो उत्पादन ऑटोमेशन वर्कफ़्लो के लिए विश्वसनीय हैं।
पहले, आवश्यक निर्भरताओं को स्थापित करें:
npm install playwright capsolver
अपने API कुंजी के साथ CapSolver क्लाइंट की शुरुआत करें:
const CapSolver = require('capsolver');
const capSolver = new CapSolver({ apiKey: 'आपकी API कुंजी' });
reCAPTCHA v2 आमतौर पर चेकबॉक्स चुनौतियां या छवि चयन परीक्षण प्रस्तुत करता है। यहां पूर्ण एकीकरण है:
const { chromium } = require('playwright');
async function solveRecaptchaV2Example() {
// CapSolver की शुरुआत
const CapSolver = require('capsolver');
const solver = new CapSolver({ apiKey: 'आपकी API कुंजी' });
// ब्राउजर शुरू करें
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
try {
// लक्ष्य पृष्ठ पर जाएं
await page.goto('https://example.com/login');
// reCAPTCHA v2 की पहचान करें
const siteKey = await page.evaluate(() => {
const element = document.querySelector('[data-sitekey]');
return element ? element.getAttribute('data-sitekey') : null;
});
if (siteKey) {
console.log('reCAPTCHA v2 पहचाना गया, हल कर रहे हैं...');
// CapSolver के माध्यम से हल करें
const solution = await solver.recaptcha({
websiteURL: page.url(),
websiteKey: siteKey,
isEnterprise: false
});
// समाधान टोकन सेट करें
await page.evaluate((token) => {
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) textarea.value = token;
}, solution.gRecaptchaResponse);
// कॉलबैक यदि मौजूद हो तो ट्रिगर करें
const callback = await page.evaluate(() => {
const el = document.querySelector('[data-callback]');
return el ? el.getAttribute('data-callback') : null;
});
if (callback) {
await page.evaluate((cb) => {
eval(cb + '()');
}, callback);
}
console.log('reCAPTCHA v2 सफलतापूर्वक बाउंस कर दिया गया');
}
// अपने ऑटोमेशन के साथ आगे बढ़ें
await page.fill('#username', 'user@example.com');
await page.fill('#password', 'password123');
await page.click('#login-btn');
} catch (error) {
console.error('त्रुटि:', error.message);
} finally {
await browser.close();
}
}
solveRecaptchaV2Example();
reCAPTCHA v3 पृष्ठ के पीछे छिपा हुआ होता है और दृश्य चुनौतियों के बजाय एक स्कोर लौटाता है। यहां इसके साथ निपटने का तरीका है:
const { chromium } = require('playwright');
async function solveRecaptchaV3Example() {
// CapSolver की शुरुआत
const CapSolver = require('capsolver');
const solver = new CapSolver({ apiKey: 'आपकी API कुंजी' });
// ब्राउजर शुरू करें
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
try {
await page.goto('https://example.com/dashboard');
// reCAPTCHA v3 साइट की कुंजी निकालें
const siteKey = await page.evaluate(() => {
const scripts = document.querySelectorAll('script[src*="recaptcha"]');
for (const script of scripts) {
const src = script.src;
const keyMatch = src.match(/k=([^&]+)/);
if (keyMatch) return keyMatch[1];
}
return null;
});
if (siteKey) {
console.log('reCAPTCHA v3 पहचाना गया');
// स्कोर मांग के साथ हल करें
const solution = await solver.recaptcha({
websiteURL: page.url(),
websiteKey: siteKey,
isEnterprise: false,
pageAction: 'homepage'
});
console.log('टोकन प्राप्त, स्कोर:', solution.score);
// टोकन को एपीआई अनुरोधों के लिए संग्रहीत करें
await page.evaluate((token) => {
window.__captchaToken = token;
}, solution.gRecaptchaResponse);
// बाद के अनुरोधों में टोकन का उपयोग करें
const response = await page.evaluate(async (token) => {
const res = await fetch('/api/user-profile', {
headers: { 'X-Recaptcha-Token': token }
});
return await res.json();
}, solution.gRecaptchaResponse);
console.log('डेटा प्राप्त किया:', response);
}
} catch (error) {
console.error('त्रुटि:', error.message);
} finally {
await browser.close();
}
}
solveRecaptchaV3Example();
Cloudflare Turnstile एक अदृश्य चुनौति या विज्ञापन-आधारित सत्यापन के रूप में दिखाई देता है। यहां पूर्ण दृष्टिकोण है:
const { chromium } = require('playwright');
async function solveCloudflareTurnstileExample() {
// CapSolver की शुरुआत
const CapSolver = require('capsolver');
const solver = new CapSolver({ apiKey: 'आपकी API कुंजी' });
// स्टील्थ सेटिंग्स के साथ ब्राउजर शुरू करें
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext({
viewport: { width: 1920, height: 1080 },
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
});
const page = await context.newPage();
try {
await page.goto('https://example-protected.com/', {
waitUntil: 'domcontentloaded',
timeout: 30000
});
// Cloudflare चुनौति की जांच करें
const isCFChallenge = await page.evaluate(() => {
return document.title.includes('Just a moment') ||
document.querySelector('#cf-challenge') !== null;
});
if (isCFChallenge) {
console.log('Cloudflare चुनौति पहचाना गया');
// चुनौति के लिए प्रतीक्षा करें
await page.waitForTimeout(2000);
// Turnstile विजेट की पहचान करें
const siteKey = await page.evaluate(() => {
const turnstile = document.querySelector('.cf-turnstile');
return turnstile ? turnstile.getAttribute('data-sitekey') : null;
});
if (siteKey) {
console.log('Turnstile पहचाना गया, हल कर रहे हैं...');
// Turnstile हल करें
const solution = await solver.turnstile({
websiteURL: page.url(),
websiteKey: siteKey
});
console.log('टोकन प्राप्त');
// पृष्ठ में टोकन डालें
await page.evaluate((token) => {
// टोकन फ़ील्ड बनाएं या अपडेट करें
let tokenField = document.querySelector('[name="cf-turnstile-response"]');
if (!tokenField) {
tokenField = document.createElement('input');
tokenField.type = 'hidden';
tokenField.name = 'cf-turnstile-response';
document.body.appendChild(tokenField);
}
tokenField.value = token;
// कॉलबैक ट्रिगर करें
const turnstile = document.querySelector('.cf-turnstile');
if (turnstile && turnstile.dataset.callback) {
window[turnstile.dataset.callback](token);
}
}, solution.token);
// चुनौति के खत्म होने की प्रतीक्षा करें
await page.waitForTimeout(3000);
console.log('Cloudflare Turnstile बाउंस कर दिया गया');
}
}
// पृष्ठ लोड हो गया है कि नहीं जांचें
const title = await page.title();
console.log('पृष्ठ का शीर्षक:', title);
} catch (error) {
console.error('त्रुटि:', error.message);
} finally {
await browser.close();
}
}
solveCloudflareTurnstileExample();
उत्पादन उपयोग के लिए डिटेक्शन, हल और पुनर्प्रयास तकनीक के साथ एक पूर्ण उदाहरण नीचे दिया गया है:
const { chromium } = require('playwright');
const CapSolver = require('capsolver');
class PlaywrightAutomation {
constructor(apiKey) {
this.solver = new CapSolver({ apiKey });
}
async detectAndSolve(page) {
// reCAPTCHA v2 की जांच करें
const reCaptchaV2Key = await page.evaluate(() => {
const el = document.querySelector('[data-sitekey]');
return el?.getAttribute('data-sitekey');
});
// Cloudflare Turnstile की जांच करें
const turnstileKey = await page.evaluate(() => {
const el = document.querySelector('.cf-turnstile');
return el?.getAttribute('data-sitekey');
});
if (reCaptchaV2Key) {
console.log('reCAPTCHA v2 हल कर रहे हैं...');
return await this.solveRecaptchaV2(page, reCaptchaV2Key);
}
if (turnstileKey) {
console.log('Cloudflare Turnstile हल कर रहे हैं...');
return await this.solveTurnstile(page, turnstileKey);
}
return null;
}
async solveRecaptchaV2(page, siteKey) {
const solution = await this.solver.recaptcha({
websiteURL: page.url(),
websiteKey: siteKey
});
await page.evaluate((token) => {
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) textarea.value = token;
}, solution.gRecaptchaResponse);
return solution;
}
async solveTurnstile(page, siteKey) {
const solution = await this.solver.turnstile({
websiteURL: page.url(),
websiteKey: siteKey
});
await page.evaluate((token) => {
let tokenField = document.querySelector('[name="cf-turnstile-response"]');
if (!tokenField) {
tokenField = document.createElement('input');
tokenField.type = 'hidden';
tokenField.name = 'cf-turnstile-response';
document.body.appendChild(tokenField);
}
tokenField.value = token;
}, solution.token);
return solution;
}
async run(url, steps) {
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
try {
await page.goto(url);
// आवश्यकता होने पर CAPTCHA को हल करें
await this.detectAndSolve(page);
// अपने ऑटोमेशन स्टेप्स चलाएं
for (const step of steps) {
await step(page);
}
} finally {
await browser.close();
}
}
}
// उपयोग उदाहरण
const automation = new PlaywrightAutomation('आपकी API कुंजी');
automation.run('https://example.com/form', [
(page) => page.fill('#name', 'John Doe'),
(page) => page.fill('#email', 'john@example.com'),
(page) => page.click('#submit')
]).then(() => console.log('ऑटोमेशन पूरा हो गया'))
.catch(err => console.error('त्रुटि:', err));
वेब स्क्रैपिंग बाजार तेजी से बढ़ रहा है क्योंकि संगठन डेटा-आधारित निर्णय लेने पर ध्यान केंद्रित करते हैं, जो आधुनिक विकास वर्कफ़्लो के लिए स्वचालित समाधानों की बढ़ती आवश्यकता के कारण है।
अधिक विस्तृत उदाहरण के लिए, पूर्ण Playwright एकीकरण दस्तावेज़ीकरण देखें और CapSolver के साथ Playwright के एकीकरण के बारे में जानें।
हां, CapSolver जैसी AI-संचालित CAPTCHA हल करने वाली सेवाओं के साथ एकीकृत होकर, Playwright स्वचालित रूप से चुनौतियों की पहचान और हल कर सकता है। समाधान टोकन स्वचालित रूप से प्रस्तुत किया जाता है, जिससे ऑटोमेशन बिना हस्तक्षेप के चलता रहता है।
AI-आधारित हल अधिकांश चुनौती प्रकार के लिए आमतौर पर 3-10 सेकंड में पूरा हो जाता है। यह मानव-आधारित विकल्पों की तुलना में बहुत तेज है, जिनमें अनुरोध के लिए लगभग 10-45 सेकंड लग सकते हैं।
हां, कैपसॉल्वर reCAPTCHA v3 का समर्थन करता है जिसमें नियंत्रित न्यूनतम स्कोर मापदंड होते हैं। आप अपनी आवश्यकतानुसार स्कोर सीमा (0.1-0.9) निर्धारित कर सकते हैं जो विभिन्न चुनौती कठोरता स्तरों के लिए उपयुक्त होती है।
आप पूरी तरह से CAPTCHA को दूर नहीं कर सकते, लेकिन आप स्टील्थ ब्राउजर सेटिंग्स का उपयोग करके इसकी आवृत्ति कम कर सकते हैं, कार्यों के बीच समय को यादृच्छिक बना सकते हैं, यूजर एजेंट को घुमा सकते हैं और निवासी प्रॉक्सी का उपयोग कर सकते हैं। हालांकि, कुछ वेबसाइटों पर कोई भी उपाय निर्देशों के बावजूद चुनौतियां प्रस्तुत करती हैं।
असफल प्रयासों के लिए एक्स्पोनेंशियल बैकऑफ के साथ रीट्राय लॉजिक कार्यान्वित करें। कैपसॉल्वर अधिकांश चुनौतियों को सफलतापूर्वक हल करता है, लेकिन कुछ जटिल विविधताएं कभी-कभी बार-बार प्रयास की आवश्यकता हो सकती है। सही त्रुटि प्रबंधन आपके स्वचालन की प्रतिरोधक क्षमता सुनिश्चित करता है।
हां, CapSolver एसडीके और एपीआई समर्थन के साथ एमएसएस, पुप्पेटर, सीलेनियम और सीधे ब्राउजर एक्सटेंशन के साथ काम करता है। एकीकरण के तरीके उपकरणों के बीच समान हैं साथ ही थोड़े अंतर हो सकते हैं।
हां, जब इसका वैध स्वचालन उद्देश्यों के लिए उपयोग किया जाता है। कैपसॉल्वर नैतिक प्रौद्योगिकी अभ्यास के प्रति प्रतिबद्ध है और विकासकर्ताओं के अपने अधिकृत कार्यप्रवाह को अधिक कुशलता से स्वचालित करने में सहायता करती है। हमेशा निश्चित करें कि आपके स्वचालन गतिविधियां लक्ष्य वेबसाइट की शर्तों और लागू कानूनों के अनुरूप हैं। सर्वोत्तम अभ्यास के लिए कैपसॉल्वर के संगति दिशानिर्देश की समीक्षा करें।