تأتي حلول اختبار CAPTCHA في شكلين: الرموز المميزة التي تقوم بإدخالها في عمليات إرسال النماذج، وملفات تعريف الارتباط التي تمنح الوصول على مستوى الجلسة. يعتمد اختيار النهج الصحيح على اختبار CAPTCHA الذي تواجهه وكيفية التحقق من صحة الموقع المستهدف.
في لمحة
| الجانب | القائم على الرمز المميز | على أساس ملفات تعريف الارتباط |
|---|---|---|
| الإخراج | رمز سلسلة (500+ حرف) | ملف تعريف ارتباط المتصفح (cf_clearance، وما إلى ذلك) |
| تستخدم ل | reCAPTCHA v2/v3، hCaptcha، Turnstile | صفحات Cloudflare Challenge |
| كيف يتم استخدامه | يتم حقنه في حقل النموذج أو نص POST | تم إرساله مع طلبات HTTP اللاحقة |
| مدى الحياة | 60-120 ثانية | 30 دقيقة إلى 24 ساعة |
| قابلة لإعادة الاستخدام | لا (استخدام واحد) | نعم (لمدة الجلسة) |
| المتصفح مطلوب | للإستخراج فقط | للحل (يلزم متصفح كامل) |
الحل القائم على الرمز المميز
كيف يعمل
- قم باستخراج مفتاح الموقع من الصفحة
- أرسل مفتاح الموقع + عنوان URL للصفحة إلى CaptchaAI
- تلقي سلسلة رمزية
- أدخل الرمز المميز في حقل النموذج المخفي
- أرسل النموذج
ما هي اختبارات CAPTCHA التي تستخدم الرموز المميزة
- reCAPTCHA v2: ينتقل الرمز المميز إلى منطقة النص
g-recaptcha-response - reCAPTCHA v3: نفس الحقل، ولكن يحتاج أيضًا إلى
action(وenterprise=1لمواقع Enterprise) - hCaptcha: ينتقل الرمز المميز إلى
h-captcha-response - Turnstile: ينتقل الرمز إلى
cf-turnstile-response
التنفيذ
import requests
import time
API_KEY = "YOUR_API_KEY"
# 1. Solve
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6Le-wvkSAAAAAPBMR...",
"pageurl": "https://example.com/login",
"json": "1",
}).json()
task_id = resp["request"]
# 2. Poll
token = None
for _ in range(24):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get", "id": task_id, "json": "1"
}).json()
if result["status"] == 1:
token = result["request"]
break
# 3. Submit form with token (no browser needed)
form_response = requests.post("https://example.com/login", data={
"email": "user@example.com",
"password": "password",
"g-recaptcha-response": token,
})
الخصائص الرئيسية
- لا حاجة إلى متصفح للإرسال: يمكنك إدخال الرمز المميز مباشرةً في طلب HTTP POST
- قصيرة العمر: تنتهي صلاحية الرموز خلال 60-120 ثانية - قم بحلها واستخدامها على الفور
- الاستخدام الفردي: يعمل كل رمز مميز مرة واحدة؛ حل مرة أخرى لكل إرسال النموذج
- التحقق من جانب الخادم: يرسل الموقع المستهدف الرمز المميز إلى Google/Cloudflare/hCaptcha للتحقق
الحل القائم على ملفات تعريف الارتباط
كيف يعمل
- يتم تقديم صفحة التحدي (Cloudflare Challenge، JS Challenge)
- المتصفح يحل التحدي (قد يتضمن Turnstile داخليًا)
- يقوم الخادم بتعيين ملف تعريف ارتباط الجلسة (
cf_clearance) - جميع الطلبات اللاحقة مع ملف تعريف الارتباط هذا تتخطى التحدي
ما هي اختبارات CAPTCHA التي تستخدم ملفات تعريف الارتباط
- صفحات Cloudflare Challenge: ملف تعريف الارتباط
cf_clearance - تحدي JS: تحدي Cloudflare لJavaScript فقط
- ** بعض تحديات WAF **: جدران حماية تطبيقات الويب المختلفة
التنفيذ
from selenium import webdriver
import requests
import time
# 1. Solve the challenge in a browser
driver = webdriver.Chrome()
driver.get("https://example.com/protected")
# Wait for challenge to complete (manually or with CaptchaAI)
time.sleep(10) # Or use CaptchaAI token injection
# 2. Extract cookies from browser
cookies = driver.get_cookies()
cf_clearance = next(
(c for c in cookies if c["name"] == "cf_clearance"), None
)
user_agent = driver.execute_script("return navigator.userAgent")
driver.quit()
# 3. Use cookies for subsequent requests (no browser needed)
session = requests.Session()
session.headers.update({"User-Agent": user_agent})
for cookie in cookies:
session.cookies.set(cookie["name"], cookie["value"])
# All requests now pass the challenge
for page in range(1, 50):
resp = session.get(f"https://example.com/api/data?page={page}")
print(f"Page {page}: {resp.status_code}")
الخصائص الرئيسية
- المتصفح مطلوب للحل: يحتاج التحدي إلى بيئة متصفح كاملة
- طويلة العمر: تدوم ملفات تعريف الارتباط من 30 دقيقة إلى 24 ساعة
- قابلة لإعادة الاستخدام: حل واحد يمنح الوصول إلى العديد من الطلبات
- مرتبط بـ IP: يرتبط ملف تعريف الارتباط بعنوان IP الذي حل التحدي
- مرتبط بـ UA: يجب أن يتطابق وكيل المستخدم مع الوكيل المستخدم أثناء الحل
متى تستخدم أي
| السيناريو | النهج | لماذا |
|---|---|---|
| نموذج تسجيل الدخول باستخدام reCAPTCHA | رمز مميز | إرسال الرمز المميز مع بيانات النموذج |
| تجريف موقع محمي بواسطة Cloudflare | ملف تعريف الارتباط | حل واحد، العديد من طلبات الصفحة |
| تقديم النموذج مع Turnstile | رمز مميز | حقن في cf-turnstile-response |
| الوصول إلى واجهة برمجة التطبيقات خلف Cloudflare | ملف تعريف الارتباط | إعادة استخدام ملف تعريف الارتباط لجميع مكالمات API |
| تقديم نماذج متعددة | الرمز (في كل مرة) | يحتاج كل نموذج إلى رمز مميز جديد |
| تجريف السائبة نفس المجال | ملف تعريف الارتباط | حل مرة واحدة، وكشط حتى تنتهي صلاحية ملف تعريف الارتباط |
نهج هجين
تستخدم بعض المواقع كليهما: صفحة Cloudflare Challenge (ملف تعريف الارتباط) لحماية النموذج الذي يحتوي على reCAPTCHA (الرمز المميز).
# Step 1: Get past Cloudflare (cookie)
session = get_cf_clearance_session("https://example.com")
# Step 2: Load the form (using the cookie session)
html = session.get("https://example.com/submit").text
sitekey = extract_sitekey(html)
# Step 3: Solve reCAPTCHA (token)
token = solve_recaptcha(sitekey, "https://example.com/submit")
# Step 4: Submit form (cookie + token)
resp = session.post("https://example.com/submit", data={
"data": "value",
"g-recaptcha-response": token,
})
ملخص المقارنة
| ميزة | رمز مميز | ملف تعريف الارتباط |
|---|---|---|
| حل التكلفة | لكل تقديم النموذج | لكل جلسة (المطفأة) |
| حل الوقت | 10-30 ثانية لكل رمز | 10-30 ثانية مرة واحدة |
| طلبات لكل حل | 1 | كثيرة (حتى انتهاء الصلاحية) |
| مرونة الملكية الفكرية | الرمز يعمل من أي IP | ملف تعريف الارتباط مرتبط بحل IP |
| متصفح للاستخدام | ليست هناك حاجة | ليست هناك حاجة (فقط ملف تعريف الارتباط) |
| خطر انتهاء الصلاحية | 60-120 ثانية | 30 دقيقة - 24 ساعة |
الأسئلة الشائعة
هل يمكنني تحويل اختبار CAPTCHA القائم على الرمز المميز إلى اختبار يعتمد على ملفات تعريف الارتباط؟
لا، يعتمد النهج على كيفية التحقق من صحة الموقع. يستخدم reCAPTCHA الرموز المميزة دائمًا؛ يستخدم Cloudflare Challenge ملفات تعريف الارتباط دائمًا.
ما هو أرخص للتجريف بكميات كبيرة؟
يعد استخدام ملفات تعريف الارتباط أرخص بكثير عند توفره. حل واحد يغطي آلاف الطلبات. يتطلب الاعتماد على الرمز المميز حلاً لكل إرسال نموذج.
هل يتعامل CaptchaAI مع كليهما؟
نعم. تقوم اختبارات CAPTCHA المستندة إلى الرمز المميز بإرجاع سلسلة رمزية. بالنسبة لصفحات Cloudflare Challenge، يمكنك استخدام Turnstile Solver للحصول على الرمز المطلوب لإكمال التحدي، ثم استخراج ملف تعريف الارتباط الناتج.
حل اختبارات CAPTCHA باستخدام CaptchaAI
احصل على مفتاح API الخاص بك علىcaptchaai.com.
أدلة ذات صلة
- Cloudflare Challenge cf_clearance دليل ملفات تعريف الارتباط
- استخراج معلمات reCAPTCHA من مصدر الصفحة