
Rajinder Singh
Deep Learning Researcher

Skyvern वेबपेज खोलने, फॉर्म भरने और व्यावसायिक वर्कफ़्लो के माध्यम से आगे बढ़ने के लिए जिम्मेदार है, जबकि CapSolver कैप्चा टोकन वापस करता है।
सीधे आधिकारिक capsolver SDK स्थापित करें और capsolver.solve() कॉल करें ताकि आप स्वयं createTask और पॉलिंग लॉजिक के लिए निर्माण न करें।
जब टोकन प्राप्त हो जाता है, तो इसे वर्तमान ब्राउज़र पृष्ठ पर वापस करें, फिर Skyvern को फॉर्म भरने और परिणामों की जांच करने के लिए छोड़ दें।
Skyvern Playwright, दृश्य मॉडल और बड़े भाषा मॉडल (LLMs) पर आधारित एक AI ब्राउज़र ऑटोमेशन प्लेटफॉर्म है। Skyvern वेबपेज में टेक्स्ट, फॉर्म और अंतरक्रियात्मक तत्वों को समझ सकता है, प्राकृतिक भाषा निर्देशों के आधार पर पृष्ठ नेविगेशन, बटन क्लिक, सामग्री इनपुट, फाइल अपलोड, जानकारी निकालना और बहु-चरणीय वर्कफ़्लो के रूप में कार्य पूरा कर सकता है। इस दृष्टिकोण से पृष्ठ संरचना में परिवर्तन के कारण स्क्रिप्ट रखरखाव लागत कम हो जाती है, जो लॉगिन, फॉर्म जमा करने, बैक-ऑफिस ऑपरेशन और डेटा संग्रह के अनुप्रयोगों के लिए आदर्श है।
जब ऑटोमेशन वर्कफ़्लो के सामने कैप्चा चुनौती होती है, तो आप वर्तमान पृष्ठ URL, साइट की कुंजी और कैप्चा प्रकार जैसे पैरामीटर प्रदान करके आधिकारिक CapSolver Python SDK कॉल कर सकते हैं। जब CapSolver कार्य पूरा कर लेता है, तो यह एक संगत सत्यापन टोकन वापस करता है। कार्यक्रम फिर Playwright का उपयोग करके इस टोकन को वर्तमान पृष्ठ के उत्तर क्षेत्रों, जावास्क्रिप्ट कॉलबैक या व्यावसायिक मांगों में लिखता है। सत्यापन पारित होने के बाद, Skyvern मूल उपयोगकर्ता-अनुमति कार्य को जारी रख सकता है, जैसे फॉर्म जमा करना, अगले पृष्ठ में प्रवेश करना या अंतिम ऑपरेशन परिणामों की जांच करना।
स्काईवर्न वर्तमान में Python 3.11, 3.12 या 3.13 की आवश्यकता होती है। स्काईवर्न, कैपसॉल्वर SDK और क्रोमियम स्थापित करें:
pip install "skyvern[local]"
pip install --upgrade capsolver
python -m playwright install chromium
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
})
print(solution)
सफलता के मामले में, वापस किया गया परिणाम मुख्य रूप से उपयोग करता है:
token = solution["gRecaptchaResponse"]
पैरामीटर की भूमिका:
websiteURL और websiteKey वर्तमान पृष्ठ के वास्तविक विन्यास के साथ संगत होना चाहिए।
नीचे एक न्यूनतम एकीकरण उदाहरण है। स्काईवर्न पहले पृष्ठ खोलता है और फॉर्म भरता है, फिर आधिकारिक SDK के माध्यम से टोकन प्राप्त करता है, और अंत में पृष्ठ पर टोकन वापस करता है जो जमा करने के लिए उपयोग किया जाता है।
import asyncio
import capsolver
from skyvern import Skyvern
TARGET_URL = "https://www.google.com/recaptcha/api2/demo"
WEBSITE_KEY = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
async def inject_token(page, token: str):
await page.evaluate(
"""
(token) => {
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = token;
}
}
""",
token,
)
async def main():
skyvern = Skyvern.local()
browser = await skyvern.launch_local_browser(headless=False)
page = await browser.get_working_page()
try:
await page.goto(TARGET_URL)
solution = await asyncio.to_thread(
capsolver.solve,
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": TARGET_URL,
"websiteKey": WEBSITE_KEY,
},
)
token = solution["gRecaptchaResponse"]
await inject_token(page, token)
await page.act("Submit")
await page.validate("Verification successful... Great!")
finally:
await browser.close()
कैपसॉल्वर केवल टोकन वापस करने के लिए जिम्मेदार है; यह लक्षित वेबसाइट के व्यावसायिक फॉर्म के स्वचालित उपलब्ध कराने के लिए नहीं है। अलग-अलग वेबसाइट टोकन के साथ अलग-अलग तरीकों से निपटते हैं, सामान्य विधियां शामिल हैं:
g-recaptcha-response छिपा क्षेत्र में लिखें;
पृष्ठ पर कॉन्फ़िगर किए गए जावास्क्रिप्ट कॉलबैक को कॉल करें;
टोकन को व्यावसायिक इंटरफ़ेस पैरामीटर के रूप में भेजें।
उदाहरण में inject_token() छिपे क्षेत्र और एक परीक्षण कॉलबैक दोनों को काम में लाता है। वास्तविक उपयोग में, इस स्निपेट को अपने साइट के फ्रंटएंड विवरण के अनुसार समायोजित किया जाना चाहिए।
निम्नलिखित पैरामीटर जांचें:
क्या websiteURL वर्तमान पृष्ठ पता है?
क्या websiteKey वर्तमान साइट से है?
टोकन प्राप्त करने के बाद पृष्ठ रीफ्रेश हुआ?
क्या टोकन सही पृष्ठ कॉलबैक या व्यावसायिक इंटरफ़ेस में हस्तांतरित किया गया?
reCAPTCHA के अलावा, Skyvern कैपसॉल्वर के साथ मानक छवि-से-पाठ कैप्चा के साथ भी काम कर सकता है। BotDetect CAPTCHA Demo के उदाहरण के रूप में, कैप्चा छवि तत्व पहचानकर्ता demoCaptcha_CaptchaImage है, परिणाम इनपुट बॉक्स पहचानकर्ता captchaCode है, और सत्यापन बटन पहचानकर्ता validateCaptchaButton है।

ImageToTextTask के लिए कैप्चा छवि को Base64 में परिवर्तित करना आवश्यक है और इसे body पैरामीटर के माध्यम से प्रस्तुत करना होता है। यदि छवि src एक Data URL है, उदाहरण के लिए:
data:image/png;base64,iVBORw0KGgoAAA...
जब इसे कैपसॉल्वर के साथ पारित किया जाता है, तो कॉमा के बाद केवल Base64 सामग्री को बरकरार रखें, data:image/...;base64, प्रीफिक्स को छोड़ दें। Token-प्रकार के कार्यों के विपरीत, ImageToTextTask के लिए सीधे पहचान परिणाम वापस कर दिया जाता है और getTaskResult के अतिरिक्त पॉलिंग की आवश्यकता नहीं होती है।
नीचे पूर्ण Skyvern एकीकरण उदाहरण है:
import asyncio
import capsolver
from skyvern import Skyvern
TARGET_URL = "https://captcha.com/demos/features/captcha-demo.aspx"
async def main():
skyvern = Skyvern.local()
browser = await skyvern.launch_local_browser(headless=False)
page = await browser.get_working_page()
try:
await page.goto(TARGET_URL)
await page.locator("#demoCaptcha_CaptchaImage").wait_for()
# कैप्चा छवि Data URL को पढ़ें।
image_src = await page.locator(
"#demoCaptcha_CaptchaImage"
).get_attribute("src")
if not image_src or "," not in image_src:
raise RuntimeError("एक वैध Base64 कैप्चा छवि नहीं मिला")
# Data URL प्रीफिक्स को हटा दें और केवल Base64 डेटा बरकरार रखें।
base64_image = image_src.split(",", 1)[1]
solution = await asyncio.to_thread(
capsolver.solve,
{
"type": "ImageToTextTask",
"websiteURL": TARGET_URL,
"module": "common",
"body": base64_image,
},
)
captcha_text = solution["text"]
print("पहचान परिणाम:", captcha_text)
await page.locator("#captchaCode").fill(captcha_text)
await page.locator("#validateCaptchaButton").click()
await page.wait_for_timeout(5000)
finally:
await browser.close()
if __name__ == "__main__":
asyncio.run(main())
कोड के कार्यान्वयन प्रक्रिया का सारांश निम्नानुसार है:
स्काईवर्न कैप्चा पृष्ठ खोलता है
-> #demoCaptcha_CaptchaImage खोजें
-> Base64 छवि डेटा निकालें और साफ करें
-> capsolver.solve(ImageToTextTask) कॉल करें
-> solution["text"] पढ़ें
-> #captchaCode में भरें
-> #validateCaptchaButton पर क्लिक करें
module एक वैकल्पिक पैरामीटर है; डिफ़ॉल्ट रूप से common का उपयोग किया जा सकता है। यदि कैप्चा केवल संख्याओं वाला है, तो आप number का उपयोग कर सकते हैं; कुछ विशिष्ट शैलियों के लिए, आप कैपसॉल्वर दस्तावेज़ में उपलब्ध संबंधित स्वतंत्र मॉडल का चयन करके पहचान सटीकता में सुधार कर सकते हैं।

उदाहरण के लिए, केवल संख्यात्मक कैप्चा की पहचान करते समय, आप कार्य पैरामीटर को निम्नानुसार बदल सकते हैं:
solution = capsolver.solve({
"type": "ImageToTextTask",
"module": "number",
"images": [base64_image],
})
answers = solution["answers"]
number मॉडल एक साथ कई छवियां भेजने के लिए समर्थन करता है, और images में अधिकतम 9 Base64 स्ट्रिंग हो सकती हैं। अन्य मॉडल नाम और लागू छवि प्रकार के लिए, कृपया आधिकारिक कैपसॉल्वर ImageToTextTask दस्तावेज़ीकरण देखें।
AI ब्राउज़र ऑटोमेशन के लिए सही तकनीकी समाधान का चयन कार्य की जटिलता, पृष्ठ परिवर्तन की आवृत्ति और लक्षित वेबसाइट के सत्यापन तंत्र पर निर्भर करता है। पारंपरिक उपकरण जैसे सीलेनियम और प्लेयराइट स्थिर संरचना और स्पष्ट ऑपरेशन मार्ग वाले ऑटोमेशन वर्कफ़्लो के लिए उपयुक्त हैं। स्काईवर्न इस पर आधारित है और दृश्य मॉडल और LLM के साथ बनाया गया है, जो अक्सर बदलती पृष्ठ संरचना, सामान्य अर्थ की आवश्यकता या बहु-चरणीय कार्यों वाले वेब कार्यों के लिए अधिक उपयुक्त है। चूंकि स्काईवर्न प्लेयराइट पर ब्राउज़र को नियंत्रित करता है, यह प्राकृतिक भाषा के माध्यम से पृष्ठ नेविगेशन, फॉर्म भरना, बटन क्लिक करना और डेटा निकालना पूरा कर सकता है। जब प्रक्रिया कैप्चा चुनौती के सामने आती है, तो विकासकर्ता आधिकारिक कैपसॉल्वर SDK के साथ जुड़ सकते हैं ताकि सत्यापन टोकन प्राप्त करें और फिर परिणाम को वर्तमान पृष्ठ में भर दें, जिससे स्काईवर्न फॉर्म जमा करना, पृष्ठ संक्रमण और परिणाम जांच जैसे बाद के कार्यों को जारी रख सकता है। स्काईवर्न और कैपसॉल्वर के संयोजन से, विकासकर्ता अधिक लचीले, बनाए रखे जा सकने वाले और विस्तारित ब्राउज़र ऑटोमेशन वर्कफ़्लो बना सकते हैं, पारंपरिक सेलेक्टर के बजाय रखरखाव लागत कम करते हैं और जटिल वेब कार्यों की कार्यक्षमता और स्थिरता में सुधार करते हैं। स्पष्ट अनुमति सीमा की परिभाषा, API कुंजी की सुरक्षा और ऑटोमेशन परिणामों की जांच और रिकॉर्डिंग संबंधित परियोजनाओं के स्थिर संचालन के लिए महत्वपूर्ण पूर्वापेक्षाएं हैं।
CapSolver बोनस कोड के साथ लाभ उठाएं
तत्काल अपने ऑटोमेशन बजट को बढ़ाएं!
CapSolver खाता में रीचार्ज करते समय बोनस कोड CAP26 का उपयोग करके हर रीचार्ज पर 5% बोनस प्राप्त करें — कोई सीमा नहीं।
अपने CapSolver डैशबोर्ड में अभी बोनस कोड के साथ लाभ उठाएं
Q1: फ्रेम में कैप्चा कैसे संभालें?
A1: टोकन डालने से पहले page.frame_locator('iframe_selector') का उपयोग करके फ्रेम के संदर्भ में स्विच करें। सुनिश्चित करें कि कैपसॉल्वर को भेजा गया websiteURL मुख्य पृष्ठ URL है, फ्रेम URL नहीं।
Q2: यदि वेबसाइट एक कस्टम जावास्क्रिप्ट कॉलबैक का उपयोग करती है तो क्या होगा?
A2: कॉलबैक फ़ंक्शन नाम (जैसे onCaptchaResolved) की पहचान करें और प्लेयराइट के माध्यम से इसे चलाएं: await page.evaluate("onCaptchaResolved(token)", token)।
Q3: छवि-से-पाठ पहचान दर कैसे सुधारें?
A3: विशिष्ट module पैरामीटर (जैसे संख्यात्मक कैप्चा के लिए number) का उपयोग करें और निकाले गए Base64 छवि को स्पष्ट और उच्च रिज़ॉल्यूशन में सुनिश्चित करें।
Q4: API कुंजी सुरक्षा कैसे हो?
A4: कभी-कभी अपनी API कुंजी को कोड में न डालें। os.getenv("CAPSOLVER_API_KEY") के माध्यम से इसे सुरक्षित रूप से लोड करें।
Q5: क्या आप एक पुनर्प्रयास योजना के लिए लागू करेंगे?
A5: हां, capsolver.solve() के लिए स्थायी नेटवर्क या सेवा समस्याओं के लिए एक्स्पोनेंशियल बैकऑफ रीट्राय लाइब्रेरी के साथ उपयोग करें।
Q6: टोकन समाप्त हो जाता है?
A6: कैप्चा टोकन तेजी से समाप्त हो जाता है (उदाहरण के लिए, 2 मिनट)। कैपसॉल्वर से टोकन प्राप्त करने के तुरंत बाद इसे डालें और जमा करें।
Q7: क्या स्काईवर्न विभिन्न कैप्चा प्रकारों को स्वचालित रूप से राउट कर सकता है?
A7: हां, आप स्काईवर्न के दृश्य क्षमता का उपयोग करके पहले कैप्चा प्रकार की पहचान कर सकते हैं, फिर उपयुक्त कैपसॉल्वर लोड (उदाहरण के लिए ReCaptchaV2TaskProxyLess और ImageToTextTask के बीच स्विच करें) के लिए डायनामिक रूप से निर्माण कर सकते हैं।
Q8: स्काईवर्न के दृश्य कैसे मदद करते हैं?
A8: यह डायनामिक तत्व स्थान निर्धारित करने में सक्षम बनाता है (कोई निश्चित पहचानकर्ता बिना कैप्चा खोजें), विजुअल पश्च-जमा विवरण (सफलता संदेश की जांच करें), और बेहतर पुनर्प्रयास के लिए विजुअल त्रुटि निर्देशन।
लीगलटेक के लिए अदालत दस्तावेज़ स्वचालन में CAPTCHA के निपटान में सुधार करें: ई-फ़ाइलिंग को सुगम बनाने वाले संगत कार्य प्रक्रियाएं और साधन, त्रुटियों को कम करें और दस्तावेज़ प्रस्तुति को तेज करें।

ई-कॉमर्स भंडार ट्रैकिंग में कैप्चा हल करने के तरीके सीखें व्यावहारिक विधियों, स्वचालन टिप्स और सुसंगति के साथ भंडार डेटा को सटीक और स्केलेबल रखें।
