
Rajinder Singh
Deep Learning Researcher
प्रकाशित Oct 29, 2026
अद्यतन Oct 29, 2026 · मिनट पढ़ने का समय

Lightpanda एक हेडलेस ब्राउज़र है जिसे ऑटोमेशन, क्रॉलिंग, टेस्टिंग और ब्राउज़र एजेंट्स के लिए बनाया गया है। डेवलपर इसे Chrome DevTools Protocol जैसे इंटरफेस के माध्यम से नियंत्रित करते हैं, आम तौर पर Puppeteer का उपयोग करके। यह पेज का JavaScript चला सकता है और DOM का निरीक्षण कर सकता है, जो तब उपयोगी होता है जब केवल HTTP प्रतिक्रिया किसी वर्कफ़्लो के लिए आवश्यक जानकारी न दे।
CAPTCHA एक अलग चरण है। Lightpanda के माध्यम से पेज लोड करने का मतलब यह नहीं है कि उसकी वेरिफ़िकेशन चुनौती पूरी हो गई है। CapSolver समर्थित CAPTCHA के लिए प्रलेखित सॉल्वर API प्रदान कर सकता है, जबकि आपका एप्लिकेशन पेज की स्थिति और अंतिम परिणाम के लिए ज़िम्मेदार रहता है।
यह गाइड इन ज़िम्मेदारियों को जोड़ता है, बिना यह मानकर कि हर CAPTCHA पेज Chromium जैसा व्यवहार करता है। रन करने योग्य उदाहरण ब्राउज़र कनेक्शन की पुष्टि करता है। सॉल्वर रिक्वेस्ट और एप्लिकेशन स्वीकृति के लिए आपके अपने क्रेडेंशियल्स और एक अधिकृत चुनौती की आवश्यकता होती है।
Lightpanda CAPTCHA इंटीग्रेशन को ब्राउज़र के लिए एक कनेक्शन और एप्लिकेशन बैकएंड से सॉल्वर API तक दूसरा कनेक्शन चाहिए।
Lightpanda रिपॉज़िटरी दिखाती है कि Puppeteer CDP एंडपॉइंट से कैसे कनेक्ट होता है। ब्राउज़र नेविगेशन, पेज निरीक्षण और एप्लिकेशन कॉलबैक वर्कफ़्लो के उसी पक्ष पर रहते हैं। CapSolver task API टास्क‑विशिष्ट इनपुट प्राप्त करता है और टास्क प्रतिक्रिया लौटाता है।
सॉल्वर API रिक्वेस्ट को CDP पोर्ट पर न भेजें। websiteURL के रूप में ब्राउज़र WebSocket URL भी न भेजें। एक पता ब्राउज़र प्रोसेस को नियंत्रित करता है; दूसरा उस वेबपेज की पहचान करता है जो CAPTCHA लोड करता है।
API कॉन्ट्रैक्ट यह भी तय करता है कि इंटीग्रेशन क्या जानता है। सॉल्वर परिणाम ऐसा कमांड नहीं है जो अपने‑आप हर ब्राउज़र को फिर से शुरू कर दे। एप्लिकेशन को लौटे हुए फ़ील्ड्स का उपयोग उसी तरह करना होगा जैसा उसका पेज अपेक्षा करता है।
पेड सॉल्वर रिक्वेस्ट जोड़ने से पहले Lightpanda और Puppeteer को एक अलग प्रोजेक्ट फ़ोल्डर में इंस्टॉल करें।
कनेक्शन उदाहरण Lightpanda 1.0.2, Puppeteer Core 25.16.0 और Node.js 24 का उपयोग करता है। Node डिपेंडेंसी को npm install --save-exact puppeteer-core@25.16.0 से इंस्टॉल करें। अपने ऑपरेटिंग सिस्टम और प्रोसेसर के लिए बाइनरी को आधिकारिक 1.0.2 रिलीज़ से डाउनलोड करें, उसे executable बनाएं, और ./lightpanda version से संस्करण की पुष्टि करें।
लोकल CDP सर्वर को ./lightpanda serve --host 127.0.0.1 --port 9227 से शुरू करें। क्लाइंट कनेक्ट होने तक उस टर्मिनल को चलने दें। आगे के उदाहरण में पोर्ट सर्वर पोर्ट से मेल खाना चाहिए। इस डेवलपमेंट सेटअप के लिए लोकल बाइंडिंग का उपयोग करें।
आगे बढ़ने से पहले एक अनुमत टेस्ट पेज तैयार करें। शुरुआती कनेक्शन जाँच के लिए आप अपने किसी साधारण पेज का उपयोग कर सकते हैं; बाद का CAPTCHA टेस्ट एक ऐसे पेज को चाहिए जिसमें वास्तविक चुनौती हो और जिससे एप्लिकेशन‑साइड से स्वीकृति देखी जा सके। पेड सॉल्वर टास्क बनाने से पहले मान्य CapSolver API key और बैलेंस भी तैयार रखें।
इस गाइड में कोई पेड solve प्रदर्शित नहीं किया गया है। सत्यापित ब्राउज़र स्टेप्स और API authentication प्रतिक्रिया अपने‑अपने कनेक्शन सतह स्थापित करते हैं; वे सफल CAPTCHA solving या किसी विशेष बाहरी वेबसाइट के साथ संगतता स्थापित नहीं करते।
AUTHORIZED_TEST_URL को अपने टेस्ट पेज पर सेट करें, नीचे दिए गए को lightpanda-connect.mjs के रूप में सेव करें, और node lightpanda-connect.mjs चलाएँ।
उदाहरण Lightpanda के आधिकारिक Puppeteer कनेक्शन पैटर्न को अपनाता है। यह एक ब्राउज़र context बनाता है, अनुमत पेज को लोड करता है, उसका शीर्षक और अंतिम URL पढ़ता है, और context तथा क्लाइंट कनेक्शन की सफाई करता है।
import puppeteer from 'puppeteer-core';
const target = process.env.AUTHORIZED_TEST_URL;
if (!target) throw new Error('Set AUTHORIZED_TEST_URL to your permitted test page');
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://127.0.0.1:9227',
});
try {
const context = await browser.createBrowserContext();
try {
const page = await context.newPage();
await page.goto(target, { waitUntil: 'domcontentloaded' });
console.log({ title: await page.title(), url: page.url() });
} finally {
await context.close();
}
} finally {
await browser.disconnect();
}
आउटपुट को वास्तव में लोड हुए पेज की पहचान करनी चाहिए। यदि यह कोई error page, redirect या असंबंधित डॉक्यूमेंट दिखाए, तो CAPTCHA रिक्वेस्ट बनाने से पहले उसे ठीक करें। साधारण टेस्ट पेज पर सफल JavaScript evaluation एक उपयोगी शुरुआती बिंदु है, लेकिन यह यह नहीं दिखाता कि किसी वास्तविक विजेट के सभी ब्राउज़र API सपोर्टेड हैं।
Puppeteer की connect reference मौजूदा ब्राउज़र से attach होने का वर्णन करती है। इसलिए उदाहरण connect का उपयोग करता है, अलग Chromium प्रोसेस लॉन्च करने के बजाय: टेस्ट के अधीन प्रोसेस Lightpanda ही रहना चाहिए।
सॉल्वर टास्क को ब्राउज़र द्वारा लोड की गई वास्तविक चुनौती से बनाएं, और उसके इनपुट उसी पेज के साथ जुड़े रखें।
मानक reCAPTCHA v2 के लिए आधिकारिक v2 टास्क reference से शुरू करें। proxyless रिक्वेस्ट ReCaptchaV2TaskProxyLess, websiteURL, और websiteKey का उपयोग करता है। अन्य देखे गए पैरामीटर उनके प्रलेखित फ़ील्ड में रखें; केवल दिखने वाले checkbox से उनका अनुमान न लगाएँ।
निम्न JSON उस रिक्वेस्ट की संरचना दर्शाता है। इसमें placeholders हैं और यह कोई live challenge या execute हुआ पेड रिक्वेस्ट नहीं है। मानों को अपनी स्वयं की अनुमत पेज से बदलें, और इसे भेजने के लिए ऊपर लिंक किए गए आधिकारिक API या SDK उदाहरण का उपयोग करें।
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://example.com/authorized-form",
"websiteKey": "PUBLIC_SITE_KEY_FROM_THIS_PAGE"
}
}
clientKey को बैकएंड प्रोसेस में रखें। यह ब्राउज़र‑साइड साइट की नहीं है और इसे पेज में नहीं डालना चाहिए। websiteURL उस वेबपेज का वर्णन करे जो CAPTCHA लोड कर रहा है, न कि CAPTCHA iframe URL या Lightpanda control endpoint का।
यदि आपको संस्करण या अतिरिक्त पैरामीटर नहीं पता, तो अनुमत पेज का निरीक्षण करते समय प्रलेखित CAPTCHA parameter detection workflow का उपयोग करें। यह एक तैयारी चरण है; इसका मतलब नहीं है कि Chrome extension को Lightpanda में लोड किया जा सकता है।
अपना CapSolver बोनस कोड रिडीम करें
अपना ऑटोमेशन बजट तुरंत बढ़ाएँ!
CapSolver खाते को recharge करते समय बोनस कोड CAP26 का उपयोग करें और हर recharge पर अतिरिक्त 5% बोनस पाएं — बिना किसी सीमा के।
अभी इसे अपने CapSolver Dashboard में रिडीम करें
टास्क API के समाप्त होने तक Lightpanda पेज और उसकी एप्लिकेशन स्थिति को जीवित रखें।
असिंक्रोनस प्रतिक्रिया के लिए createTask द्वारा लौटे task ID को सुरक्षित रखें और उसी टास्क के लिए getTaskResult का उपयोग करें। समाधान पढ़ने से पहले API errors और processing state की जाँच करें। v2 परिणाम के प्रलेखित response‑token फ़ील्ड का नाम gRecaptchaResponse है।
केवल इसलिए नया ब्राउज़र context न बनाएँ कि सॉल्वर रिक्वेस्ट पूरा हो गया है। नया context अलग पेज environment होता है, और आपके एप्लिकेशन में ऐसी state हो सकती है जो मूल ऑपरेशन से संबंधित हो। इसी तरह, किसी अन्य pending पेज के लिए केवल इसलिए परिणाम reuse न करें कि उस पेज पर एक जैसा विजेट दिख रहा है।
ऊपर दिया गया केवल‑कनेक्शन स्क्रिप्ट context को जानबूझकर बंद करता है। जब सॉल्वर निष्पादन को वास्तविक एप्लिकेशन में इंटीग्रेट करें, तो सॉल्वर ऑपरेशन और पेज‑विशिष्ट continuation को context की उम्र के भीतर रखें, उस cleanup के चलने से पहले। error और success दोनों स्थितियों में cleanup बनाए रखें।
परिणाम को अपने एप्लिकेशन द्वारा परिभाषित callback या submission path के माध्यम से लागू करें। ऐसा कोई universal callback नाम नहीं है जो हर पेज पर काम करे। किसी अनुमानित फ़ंक्शन को इंटीग्रेशन में पेस्ट न करें और यह मान न लें कि फ़ॉर्म ने मान को स्वीकार कर लिया है।
न्यूनतम ब्राउज़र‑साइड adapter को पहले inert string के साथ अपने किसी owned fixture पर चेक किया जा सकता है: सत्यापित करें कि इच्छित callback वह string प्राप्त करता है और संबंधित फ़ील्ड बदलती है। यह केवल adapter को validate करता है। इसे inert string को मान्य CAPTCHA प्रतिक्रिया की तरह submit नहीं करना चाहिए।
Google की reCAPTCHA response verification guide अलग एप्लिकेशन‑साइड वेरिफ़िकेशन चरण को समझाती है। असली सॉल्वर परिणाम को वापस सौंपने के बाद, उसी प्रयास के लिए एप्लिकेशन के परिणाम की जाँच करें। केवल भरा हुआ फ़ील्ड या पूरा हुआ callback पर्याप्त साक्ष्य नहीं है।
ब्राउज़र लोडिंग, सॉल्वर निष्पादन और एप्लिकेशन स्वीकृति को अलग‑अलग रखें ताकि retries वास्तविक समस्या को संबोधित करें।
पुष्टि करें कि Lightpanda प्रोसेस अभी भी चल रहा है और host तथा port मेल खा रहे हैं। यह मानने से पहले कि कोई काम करता Chromium स्क्रिप्ट वर्तमान Lightpanda बिल्ड के साथ संगत है, pin की गई client और ब्राउज़र संस्करणों की जाँच करें।
पेज script errors और विजेट के network रिक्वेस्ट का निरीक्षण करें। सॉल्वर API उस ब्राउज़र इंजन फ़ीचर को ठीक नहीं कर सकता जिसकी पेज को आवश्यकता है। पेड टास्क आगे बढ़ाने से पहले यह साबित करें कि अनुमत पेज अपेक्षित चुनौती लोड करता है।
प्रलेखित error response पढ़ें और key, task type, URL, site key और conditional फ़ील्ड्स की जाँच करें। authentication error यह स्थापित करती है कि API ने उत्तर दिया; यह सफल सॉल्वर इंटीग्रेशन स्थापित नहीं करती। एक ही invalid इनपुट को बार‑बार सबमिट न करें।
पेज ओनरशिप, token handoff, callback व्यवहार, और server‑side वेरिफ़िकेशन की जाँच करें। task ID और redacted failure reason रिकॉर्ड करें। shared build output में API keys या raw response tokens को लॉग करने से बचें।
fixture को adapter टेस्ट की तरह मानें। इंटीग्रेशन पर भरोसा करने से पहले वास्तविक अनुमत CAPTCHA फ्लो चलाएँ। ब्राउज़र व्यवहार, विजेट स्क्रिप्ट्स और एप्लिकेशन वेलिडेशन अतिरिक्त शर्तें हैं, और इनमें से कोई भी सफल CDP handshake से अपने‑आप नहीं आता।
Lightpanda के साथ बाहरी सॉल्वर API तब प्रासंगिक होती है जब कोई क्रॉलर पहले से Lightpanda का उपयोग कर रहा हो, अधिकृत टास्क के दौरान समर्थित CAPTCHA से टकराए, और उसी पेज को जारी रखने का सत्यापित तरीका हो। यह उन पेजों पर सॉल्वर जोड़ने का कारण नहीं है जिनमें CAPTCHA नहीं हैं, या सार्वभौमिक ब्राउज़र संगतता का दावा करने का।
वास्तविक ब्राउज़र कनेक्शन से शुरू करें, task schema की पुष्टि करें, और concurrency जोड़ने से पहले एक अनुमत एप्लिकेशन फ्लो का परीक्षण करें। प्रत्येक परिणाम को उसकी रिक्वेस्ट करने वाले पेज से जोड़े रखें और एप्लिकेशन के वास्तविक outcome को मापें।
सत्यापित CAPTCHA checkpoint पर सॉल्वर का उपयोग करें, फिर एप्लिकेशन outcome की पुष्टि करें। CapSolver उस चरण के लिए प्रलेखित सॉल्वर इंटरफेस प्रदान करता है। इंटीग्रेशन का विस्तार करने से पहले CapSolver को आज़माएँ एक अनुमत टेस्ट वर्कफ़्लो के साथ।
प्र: क्या यह Lightpanda के अंदर कोई CAPTCHA सॉल्वर इंस्टॉल करता है?
नहीं। एप्लिकेशन CDP के माध्यम से Lightpanda से संचार करता है और बाहरी सॉल्वर API को अलग से कॉल करता है। फिर उसे परिणाम को अधिकृत एप्लिकेशन के अपेक्षित फ्लो के अनुसार लागू करना होता है।
प्र: क्या मैं इस ब्राउज़र में CapSolver Chrome extension लोड कर सकता हूँ?
यह ट्यूटोरियल Lightpanda में Chrome‑extension सपोर्ट स्थापित नहीं करता। यह बाहरी task API का उपयोग करता है। समर्थित Chrome environment में parameter निरीक्षण एक अलग तैयारी चरण है।
प्र: क्या Puppeteer कनेक्शन यह साबित करता है कि reCAPTCHA Lightpanda में काम करता है?
नहीं। यह साबित करता है कि क्लाइंट कनेक्ट हो सकता है और प्रदर्शित ब्राउज़र ऑपरेशंस चला सकता है। वास्तविक CAPTCHA स्क्रिप्ट्स और एप्लिकेशन स्वीकृति के लिए अलग टेस्ट की आवश्यकता है।
प्र: JSON उदाहरण किस reCAPTCHA प्रकार का उपयोग करता है?
यह ReCaptchaV2TaskProxyLess के साथ मानक reCAPTCHA v2 को दर्शाता है। Enterprise, v3 और अन्य चुनौती परिवारों के लिए उनके अपने प्रलेखित task प्रकार और इनपुट्स की आवश्यकता होती है।
प्र: क्या sample code द्वारा कोई पेड CAPTCHA solve पूरा किया गया है?
नहीं। executable sample ब्राउज़र कनेक्शन की जाँच करता है, जबकि JSON placeholders के साथ टास्क की संरचना समझाता है। solving और अंतिम स्वीकृति का परीक्षण करने के लिए मान्य सॉल्वर खाता और अधिकृत live challenge की आवश्यकता होती है।

Rajinder Singh
Deep Learning Researcher
Making CAPTCHA solving more reliable in automated workflows.
लेखक के बारे में
Rust में वेब स्क्रैपिंग के स्केलेबल आर्किटेक्चर सीखें, reqwest, scraper, असिंक्रोनस स्क्रैपिंग, हेडलेस ब्राउज़र स्क्रैपिंग, प्रॉक्सी रोटेशन, और संगत CAPTCHA का निपटारा।

CapSolver के साथ RoxyBrowser के एकीकरण करें ताकि ब्राउज़र के कार्यों को स्वचालित किया जा सके और reCAPTCHA, Turnstile और अन्य CAPTCHAs को बायपास किया जा सके।
