يمنحك حل اختبار CAPTCHA باستخدام CaptchaAI رمزًا مميزًا أو ملف تعريف ارتباط. تعتمد الخطوة التالية - إدخال تلك النتيجة في الصفحة حتى يعمل إرسال النموذج - على نوع اختبار CAPTCHA وإطار التشغيل الآلي الخاص بك. يغطي هذا المرجع كل طريقة للحقن.
الحقن بنوع CAPTCHA
| نوع التحقق | ما تحصل عليه | أين تحقن | الطريقة |
|---|---|---|---|
| reCAPTCHA v2 | سلسلة رمزية | منطقة النص g-recaptcha-response |
الحقل المخفي |
| reCAPTCHA v2 غير مرئية | سلسلة رمزية | g-recaptcha-response منطقة النص + رد الاتصال |
الحقل المخفي + JS |
| reCAPTCHA v3 | سلسلة رمزية | g-recaptcha-response منطقة النص + رد الاتصال |
الحقل المخفي + JS |
| reCAPTCHA Enterprise | سلسلة رمزية | منطقة النص g-recaptcha-response |
الحقل المخفي |
| Cloudflare Turnstile | سلسلة رمزية | حقل cf-turnstile-response |
الحقل المخفي |
| Cloudflare Challenge | ملف تعريف الارتباط cf_clearance |
ملفات تعريف الارتباط للجلسة | جرة كوكي |
reCAPTCHA v2 — الحقن القياسي
يقوم reCAPTCHA v2 بإنشاء textarea مخفي باسم g-recaptcha-response. اضبط قيمته على الرمز المميز الذي تم حله.
JavaScript (وحدة تحكم المتصفح / السيلينيوم Execute_script)
// Set the token
document.getElementById("g-recaptcha-response").value = "SOLVED_TOKEN";
// Make it visible if needed (some sites validate display)
document.getElementById("g-recaptcha-response").style.display = "block";
السيلينيوم (Python)
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com/login")
# After solving with CaptchaAI
token = "SOLVED_TOKEN"
# Inject the token
driver.execute_script(f'''
document.getElementById("g-recaptcha-response").value = "{token}";
''')
# Submit the form
driver.find_element("css selector", "form").submit()
Puppeteer (Node.js)
const puppeteer = require("puppeteer");
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto("https://example.com/login");
const token = "SOLVED_TOKEN";
await page.evaluate((t) => {
document.getElementById("g-recaptcha-response").value = t;
}, token);
await page.click('button[type="submit"]');
طلب HTTP (بدون متصفح)
import requests
token = "SOLVED_TOKEN"
resp = requests.post("https://example.com/login", data={
"username": "user",
"password": "pass",
"g-recaptcha-response": token
})
reCAPTCHA v2 غير مرئي / الإصدار 3 - حقن رد الاتصال
غالبًا ما يستخدم reCAPTCHA وv3 غير المرئيين رد اتصال JavaScript. لا يكفي تعيين منطقة النص — يجب عليك تشغيل وظيفة رد الاتصال.
العثور على رد الاتصال
// Check for data-callback attribute
document.querySelector("[data-callback]")?.getAttribute("data-callback");
// Or search for the callback in reCAPTCHA's internal state
___grecaptcha_cfg.clients[0]?.aa?.l?.callback;
الحقن مع رد الاتصال
// Set the token
document.getElementById("g-recaptcha-response").value = "SOLVED_TOKEN";
// Trigger the callback
// Method 1: If callback name is known
onSubmit("SOLVED_TOKEN");
// Method 2: Find and call the callback automatically
const callback = document.querySelector("[data-callback]")?.getAttribute("data-callback");
if (callback && window[callback]) {
window[callback]("SOLVED_TOKEN");
}
السيلينيوم (Python) مع رد الاتصال
token = "SOLVED_TOKEN"
driver.execute_script(f'''
document.getElementById("g-recaptcha-response").value = "{token}";
// Try to find and trigger callback
var callback = document.querySelector("[data-callback]");
if (callback) {{
var fn = callback.getAttribute("data-callback");
if (window[fn]) window[fn]("{token}");
}}
''')
reCAPTCHA — أدوات متعددة في صفحة واحدة
تحتوي بعض الصفحات على أدوات reCAPTCHA متعددة. لكل منها منطقة نصية g-recaptcha-response خاصة بها.
// Find all response textareas
const textareas = document.querySelectorAll("[id^='g-recaptcha-response']");
console.log(`Found ${textareas.length} reCAPTCHA widgets`);
// Set the token on the correct widget (usually index 0)
textareas[0].value = "SOLVED_TOKEN";
أو ابحث عن نموذج الوالدين:
// Find the textarea inside a specific form
const form = document.querySelector("#login-form");
const textarea = form.querySelector("[name='g-recaptcha-response']");
textarea.value = "SOLVED_TOKEN";
Cloudflare Turnstile — حقن الرمز المميز
يستخدم Turnstile cf-turnstile-response كاسم الحقل.
JavaScript
// Set Turnstile token
const input = document.querySelector("[name='cf-turnstile-response']");
if (input) {
input.value = "SOLVED_TOKEN";
}
السيلينيوم (Python)
token = "SOLVED_TOKEN"
driver.execute_script(f'''
var input = document.querySelector("[name='cf-turnstile-response']");
if (input) input.value = "{token}";
''')
driver.find_element("css selector", "form").submit()
طلب HTTP (بدون متصفح)
resp = requests.post("https://example.com/login", data={
"username": "user",
"password": "pass",
"cf-turnstile-response": token
})
Cloudflare Challenge — حقن ملفات تعريف الارتباط
تقوم Cloudflare Challenge بإرجاع ملف تعريف الارتباط cf_clearance، وليس رمزًا مميزًا. قم بتعيينه في ملفات تعريف الارتباط الخاصة بجلستك.
الطلبات (بايثون)
import requests
session = requests.Session()
# Set the cookie
session.cookies.set("cf_clearance", "COOKIE_VALUE", domain=".example.com")
# MUST use same User-Agent and proxy as the solve
session.headers["User-Agent"] = "Mozilla/5.0 ..."
session.proxies = {"http": "http://user:pass@host:port", "https": "http://user:pass@host:port"}
# Now access the site
resp = session.get("https://example.com")
السيلينيوم (Python)
driver.get("https://example.com")
# Add the cookie
driver.add_cookie({
"name": "cf_clearance",
"value": "COOKIE_VALUE",
"domain": ".example.com",
"path": "/"
})
# Reload the page — should bypass the challenge
driver.refresh()
أخطاء الحقن الشائعة
| خطأ | النتيجة | إصلاح |
|---|---|---|
اسم الحقل غير صحيح (g-recaptcha-response للباب الدوار) |
تم تجاهل الرمز المميز | استخدم cf-turnstile-response للباب الدوار |
| تم إدخال الرمز ولكن لم يتم إرسال النموذج | لا شيء يحدث | أرسل النموذج بعد الحقن |
| reCAPTCHA غير مرئية دون رد الاتصال | تم تعيين الرمز المميز ولكن لم تتم معالجته | ابحث عن وظيفة رد الاتصال وقم بتشغيلها |
| مجال ملف تعريف الارتباط بدون بادئة نقطة | لم يتم إرسال ملف تعريف الارتباط للنطاقات الفرعية | استخدم .example.com مع النقطة |
| التأخير بين الحقن والتقديم | تنتهي صلاحية الرمز المميز | يقدم مباشرة بعد الحقن |
إرشادات التوقيت
| نوع التحقق | حقن وتقديم داخل |
|---|---|
| reCAPTCHA v2 | 120 ثانية |
| reCAPTCHA v3 | 120 ثانية |
| Cloudflare Turnstile | 300 ثانية (5 دقائق) |
| ملف تعريف الارتباط Cloudflare Challenge | 15-30 دقيقة |
الأسئلة الشائعة
كيف أعرف اسم الحقل الذي يجب استخدامه؟
فحص النموذج HTML. ابحث عن المدخلات المخفية أو مناطق النص بأسماء تحتوي على recaptcha أو turnstile أو captcha. الأسماء القياسية هي g-recaptcha-response وcf-turnstile-response.
هل يمكنني حقن الرموز بدون متصفح؟
نعم، للنماذج المستندة إلى HTTP. أرسل الرمز المميز كحقل POST في مكالمة requests الخاصة بك. لا حاجة للمتصفح. يلزم إدخال المتصفح فقط في تطبيقات SPA التي تعتمد على JavaScript حيث يتم إرسال النموذج عبر JavaScript.
لماذا يعمل الرمز المميز الخاص بي مع السيلينيوم ولكن ليس مع الطلبات؟
قد يتطلب الموقع ملفات تعريف ارتباط أو رؤوس إضافية تحتوي عليها جلسة السيلينيوم من تحميل الصفحة. استخدم session.get() لتحميل الصفحة أولاً، ثم قم بإرسال الرمز المميز.
احصل على مفتاح CaptchaAI API الخاص بك
قم بإدخال رموز CAPTCHA التي تم حلها بشكل موثوق فيcaptchaai.com.