यह पृष्ठ Selenium टीमों को परीक्षण और स्वचालन पाइपलाइनों के लिए स्थिर, दोहराने योग्य वर्कफ़्लो के साथ कैप्चा समाधान को एकीकृत करने में मदद करता है।
Death By Captcha (DBC) Selenium स्क्रिप्ट्स को मैन्युअल इंटरैक्शन के बजाय API के माध्यम से कैप्चा चुनौतियों को हल करने देता है: आपकी स्क्रिप्ट पेज से चुनौती पैरामीटर निकालती है, DBC से समाधान का अनुरोध करती है, परिणाम को वापस पेज में डालती है और फ़्लो जारी रखती है। यह पेज क्विकस्टार्ट है: इंस्टॉलेशन, चलाने योग्य कोड उदाहरण और समर्थित कार्यों के नोट्स।
Python:
pip install selenium deathbycaptcha-official
क्लाइंट में अपने DBC खाते के क्रेडेंशियल का उपयोग करें। फ़्लो चलाने से पहले खाता बनाएं और मूल्य व शेष राशि देखें।
import json
import os
import time
import deathbycaptcha
from selenium import webdriver
from selenium.webdriver.common.by import By
USERNAME = os.getenv('DBC_USERNAME')
PASSWORD = os.getenv('DBC_PASSWORD')
DEMO_URL = 'https://www.google.com/recaptcha/api2/demo'
def solve_recaptcha_v2(driver):
# 1. extract the challenge parameters from the page
sitekey = driver.find_element(By.ID, 'recaptcha-demo').get_attribute('data-sitekey')
token_params = json.dumps({'googlekey': sitekey, 'pageurl': DEMO_URL})
client = deathbycaptcha.SocketClient(USERNAME, PASSWORD)
if client.get_balance() <= 0:
raise SystemExit('No balance - top up before solving.')
# 2. request the solution token from DBC (type 4 = reCAPTCHA v2 token)
result = client.decode(type=4, token_params=token_params)
return result['text'] if result else None
driver = webdriver.Firefox()
driver.get(DEMO_URL)
token = solve_recaptcha_v2(driver)
if not token:
print('No solution yet - retry with backoff')
raise SystemExit(1)
# 3. inject the token back into the page
driver.execute_script("document.getElementById('g-recaptcha-response').value = arguments[0]", token)
# 4. submit and wait for the success element
driver.find_element(By.ID, 'recaptcha-demo-submit').click()
time.sleep(2)
print(driver.find_element(By.CLASS_NAME, 'recaptcha-success').text)
driver.quit()
पूर्ण चलाने योग्य संस्करण: आधिकारिक Python क्लाइंट रिपॉज़िटरी में examples/deathbycaptcha-python-selenium
| ज़रूरत | Selenium प्रसंग | डीबीसी पथ |
|---|---|---|
| स्थिर टोकन वर्कफ़्लो | बार-बार स्वचालन चलाने में नियतात्मक हैंडलिंग। | स्पष्ट पुनः प्रयास/समय सीमा के साथ एपीआई-संचालित टोकन प्रवाह। |
| कवरेज टाइप करें | विभिन्न परियोजनाएँ विभिन्न चुनौती वर्गों को प्रभावित करती हैं। | प्रकार-विशिष्ट समापन बिंदुओं का उपयोग करें और प्रत्येक परिदृश्य को अलग से मान्य करें। |
| परिचालन समर्थन | उत्पादन संबंधी समस्याओं के शीघ्र निदान की आवश्यकता है। | वृद्धि और योजना के लिए समर्थन और विश्वसनीयता सतहें। |
| विषय | नोट |
|---|---|
| कैप्चा प्रकार (API) | reCAPTCHA v2 और v3, Cloudflare Turnstile, GeeTest, DataDome और इमेज/टेक्स्ट कैप्चा। |
| फ़्लो | पेज से sitekey निकालें, DBC API (type 4) से टोकन का अनुरोध करें, उसे वापस इंजेक्ट करें और फ़ॉर्म सबमिट करें। |
| शेष राशि | समाधान खाते की शेष राशि से भुगतान होते हैं; डिकोड करने से पहले इसे जांचें। |
| पुनः प्रयास | समाधान न मिलना अस्थायी है: आधिकारिक उदाहरण की तरह बैकऑफ़ के साथ पुनः प्रयास करें। |
| API बनाम एक्सटेंशन | यह फ़्लो आपके स्क्रिप्ट के भीतर API का उपयोग करता है; ब्राउज़र एक्सटेंशन मैन्युअल ब्राउज़िंग के लिए नो-कोड पथ है। |
| समर्थित ब्राउज़र | कोई भी WebDriver-समर्थित ब्राउज़र; आधिकारिक नमूना Firefox और Chrome पर चलता है। |
Selenium कैप्चा सॉल्वर परिनियोजन के लिए, पहले स्थिर टोकन प्रवाह की पुष्टि करें, फिर उत्पादन योजना को अंतिम रूप देने के लिए विश्वसनीयता और मूल्य निर्धारण पृष्ठों को कनेक्ट करें।