ERROR_WRONG_GOOGLEKEY يعني أن المعلمة googlekey غير صالحة أو لا تتطابق مع الصفحة المستهدفة. يغطي هذا الدليل كل الأسباب والإصلاحات.
ما الذي يسبب هذا الخطأ
| السبب | كيفية التعرف على |
|---|---|
| تم استخراج مفتاح الموقع بشكل غير صحيح | المفتاح لا يطابق مصدر الصفحة |
| تم إرسال مفتاح موقع المؤسسة بشكل قياسي | تحتاج إلى معلمة enterprise=1 |
| عدم تطابق مفتاح reCAPTCHA غير المرئي | تحتاج إلى معلمة invisible=1 |
| تم تغيير مفتاح الموقع الديناميكي | تم تدوير المفتاح منذ الاستخراج |
| مفتاح الموقع للصفحة الخاطئة | مستخرج من iframe أو مجال مختلف |
| مفتاح الموقع القديم المشفر | المفتاح كان صالحا في السابق |
كيفية العثور على مفتاح الموقع الصحيح
الطريقة الأولى: البحث عن مصدر الصفحة
import re
import requests
def extract_sitekey(page_url):
"""Extract reCAPTCHA sitekey from page source."""
resp = requests.get(page_url, timeout=15)
html = resp.text
# Pattern 1: data-sitekey attribute
match = re.search(r'data-sitekey="([^"]+)"', html)
if match:
return match.group(1)
# Pattern 2: grecaptcha.render call
match = re.search(r"grecaptcha\.render\([^,]+,\s*\{[^}]*sitekey['\"]?\s*:\s*['\"]([^'\"]+)", html)
if match:
return match.group(1)
# Pattern 3: grecaptcha.execute call
match = re.search(r"grecaptcha\.execute\(['\"]([^'\"]+)", html)
if match:
return match.group(1)
# Pattern 4: reCAPTCHA script src
match = re.search(r"recaptcha/api\.js\?render=([^&\"]+)", html)
if match:
return match.group(1)
return None
sitekey = extract_sitekey("https://example.com/login")
print(f"Sitekey: {sitekey}")
الطريقة الثانية: أدوات تطوير المتصفح
- افتح الصفحة المستهدفة في Chrome
- اضغط على علامة التبويب F12 → العناصر
- اضغط على Ctrl+F وابحث عن
sitekey - ابحث عن سمة
data-sitekey="..." - انسخ القيمة (سلسلة أبجدية رقمية مكونة من 40 حرفًا)
الطريقة الثالثة: علامة تبويب الشبكة
- افتح علامة التبويب F12 → الشبكة
- تصفية حسب
recaptcha - ابحث عن طلبات
google.com/recaptcha/api2/anchor - ابحث عن المعلمة
k=في عنوان URL - وهو مفتاح الموقع
التحقق قبل التقديم
import re
def validate_sitekey(sitekey):
"""Validate sitekey format before API call."""
if not sitekey:
raise ValueError("Sitekey is empty")
# Standard format: 40 alphanumeric + hyphens/underscores
if not re.match(r'^[a-zA-Z0-9_-]{20,60}$', sitekey):
raise ValueError(f"Invalid sitekey format: {sitekey}")
return True
# Use before solving
sitekey = extract_sitekey("https://example.com/login")
validate_sitekey(sitekey)
التعامل مع reCAPTCHA Enterprise
تبدو مفاتيح المواقع الخاصة بالمؤسسة متشابهة ولكنها تتطلب المعلمة enterprise:
import requests
# Standard reCAPTCHA — loads via recaptcha/api.js
# Enterprise reCAPTCHA — loads via recaptcha/enterprise.js
def detect_enterprise(page_url):
"""Detect if page uses reCAPTCHA Enterprise."""
resp = requests.get(page_url, timeout=15)
return "recaptcha/enterprise.js" in resp.text
# Submit with enterprise flag
is_enterprise = detect_enterprise("https://example.com")
data = {
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": "https://example.com",
"json": 1,
}
if is_enterprise:
data["enterprise"] = 1
resp = requests.post("https://ocr.captchaai.com/in.php", data=data)
التعامل مع reCAPTCHA غير المرئية
def detect_invisible(html):
"""Detect invisible reCAPTCHA."""
indicators = [
'data-size="invisible"',
"grecaptcha.execute(",
"recaptcha/api.js?render=",
]
return any(i in html for i in indicators)
# Submit with invisible flag
data = {
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": "https://example.com",
"invisible": 1,
"json": 1,
}
استخراج مفتاح الموقع الديناميكي
تقوم بعض المواقع بتحميل مفاتيح الموقع عبر JavaScript. استخدم المتصفح لاستخراجها:
from selenium import webdriver
from selenium.webdriver.common.by import By
def extract_dynamic_sitekey(url):
"""Extract sitekey from JavaScript-rendered page."""
driver = webdriver.Chrome()
driver.get(url)
# Wait for reCAPTCHA to load
import time
time.sleep(3)
# Try data-sitekey attribute
elements = driver.find_elements(By.CSS_SELECTOR, "[data-sitekey]")
if elements:
sitekey = elements[0].get_attribute("data-sitekey")
driver.quit()
return sitekey
# Try iframe src parameter
iframes = driver.find_elements(By.CSS_SELECTOR, "iframe[src*='recaptcha']")
for iframe in iframes:
src = iframe.get_attribute("src")
import re
match = re.search(r'[?&]k=([^&]+)', src)
if match:
driver.quit()
return match.group(1)
driver.quit()
return None
استكشاف الأخطاء وإصلاحها
| المشكلة | السبب | الإجراء |
|---|---|---|
| يبدو المفتاح صحيحًا ولكن الخطأ مستمر | مفتاح موقع المؤسسة | إضافة enterprise=1 |
| التغييرات الرئيسية بين الزيارات | مفتاح الموقع الديناميكي | استخراج مفتاح جديد في كل مرة |
| مفاتيح مواقع متعددة على الصفحة | تم اختياره بشكل خاطئ | تطابق المفتاح مع النموذج الصحيح |
| المفتاح من CDN iframe | مفتاح المجال خاطئ | مقتطف من الصفحة الرئيسية، وليس من iframe |
| تم استخراج مفتاح الموقع الفارغ | JavaScript المقدمة | استخدم السيلينيوم لاستخراجه |
الأسئلة الشائعة
كيف يبدو مفتاح الموقع الصالح؟
يتكون مفتاح موقع reCAPTCHA عادةً من 40 حرفًا من النص الأبجدي الرقمي بالإضافة إلى الواصلات. مثال: 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-.
هل يمكن أن يعمل نفس مفتاح الموقع لكل من الإصدارين 2 و3؟
يستخدم الإصداران v2 وv3 مفاتيح مواقع مختلفة. تحقق من مصدر البرنامج النصي reCAPTCHA لتحديد الإصدار.
هل يجب علي تخزين مفتاح الموقع مؤقتًا؟
ذاكرة التخزين المؤقت لفترات قصيرة (دقائق إلى ساعات). تقوم بعض المواقع بتدوير المفاتيح. إذا بدأ الحل بالفشل، فأعد استخراج مفتاح الموقع.
أدلة ذات صلة
- البدء السريع مع CaptchaAI: حلّ أول كابتشا في 5 دقائق
- ERROR_PROXY_NOT_AUTHORIZED: إصلاحات مصادقة الوكيل
- احصل على مفتاح الموقع الصحيح -حل مع CaptchaAI.*