تساعد هذه الصفحة فرق Selenium على دمج حل captcha مع سير عمل مستقر وقابل للتكرار لخطوط أنابيب الاختبار والأتمتة.
يتيح 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()
النسخة الكاملة القابلة للتشغيل: examples/deathbycaptcha-python-selenium في مستودع عميل Python الرسمي
| يحتاج | Selenium السياق | مسار دي بي سي |
|---|---|---|
| سير عمل رمزي مستقر | التعامل الحتمي في عمليات التشغيل الآلي المتكررة. | تدفق الرمز المميز المعتمد على واجهة برمجة التطبيقات (API) مع حدود إعادة المحاولة/الوقت الواضحة. |
| نوع التغطية | مشاريع مختلفة لها فئات التحدي المختلفة. | استخدم نقاط النهاية الخاصة بالنوع وتحقق من صحة كل سيناريو على حدة. |
| الدعم التشغيلي | تحتاج مشكلات الإنتاج إلى تشخيص سريع. | أسطح الدعم والموثوقية للتصعيد والتخطيط. |
| الموضوع | ملاحظة |
|---|---|
| أنواع الكابتشا (API) | reCAPTCHA v2 وv3 وCloudflare Turnstile وGeeTest وDataDome وكابتشا الصور/النص. |
| المسار | استخرج sitekey من الصفحة، واطلب الرمز من API الخاص بـ DBC (type 4)، وأعد حقنه ثم أرسل النموذج. |
| الرصيد | تُدفع الحلول من رصيد الحساب؛ تحقق منه قبل فك الترميز. |
| إعادات المحاولة | عدم عودة الحل مؤقت: أعد المحاولة بتراجع زمني كما يفعل المثال الرسمي. |
| API مقابل الإضافة | يستخدم هذا المسار API داخل سكربتك؛ إضافة المتصفح هي المسار بدون برمجة للتصفح اليدوي. |
| المتصفحات المدعومة | أي متصفح يدعم WebDriver؛ النموذج الرسمي يعمل على Firefox وChrome. |
بالنسبة لنشر حل Selenium captcha، تأكد من تدفق الرمز المميز المستقر أولاً، ثم قم بتوصيل صفحات الموثوقية والتسعير لإنهاء تخطيط الإنتاج.