Устранение неполадок

ERROR_WRONG_GOOGLEKEY: полное руководство по диагностике и исправлению

ERROR_WRONG_GOOGLEKEY означает, что параметр googlekey недействителен или не соответствует целевой странице. В этом руководстве описаны все причины и способы их устранения.


Что вызывает эту ошибку

Причина Как определить
Извлечен неверный ключ сайта. Ключ не соответствует источнику страницы
Ключ корпоративного сайта отправляется в стандартной комплектации Нужен параметр enterprise=1
Невидимое несоответствие ключей reCAPTCHA Нужен параметр invisible=1
Динамический ключ сайта изменен. Ключ повернут с момента извлечения
Неправильный ключ сайта страницы Извлечено из iframe или другого домена.
Жестко закодированный устаревший ключ сайта Ключ был действителен ранее

Как найти правильный Sitekey

Метод 1: Поиск источника страницы

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://https://staging.example.com/qa-login")
print(f"Sitekey: {sitekey}")

Способ 2: Инструменты разработчика браузера

  1. Открыть целевую страницу в Chrome
  2. Нажмите F12 → вкладку Элементы.
  3. Нажмите Ctrl+F и найдите sitekey.
  4. Найдите атрибут data-sitekey="...".
  5. Скопируйте значение (буквенно-цифровая строка из 40 символов)

Способ 3: вкладка «Сеть»

  1. Откройте вкладку F12Сеть.
  2. Фильтровать по recaptcha
  3. Ищите запросы на google.com/recaptcha/api2/anchor
  4. Найдите в URL-адресе параметр k= — это ключ сайта.

Проверка перед отправкой

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://https://staging.example.com/qa-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-рендеринг Используйте Selenium для извлечения

Часто задаваемые вопросы

Как выглядит действительный ключ сайта?

Ключ сайта reCAPTCHA обычно состоит из 40 символов буквенно-цифрового текста и дефисов. Пример: 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-.

Может ли один и тот же ключ сайта работать как для версии 2, так и для версии 3?

Нет. В версиях 2 и 3 используются разные ключи сайта. Проверьте источник сценария reCAPTCHA, чтобы определить версию.

Должен ли я кэшировать ключ сайта?

Кэшируйте на короткие периоды времени (от минут до часов). Некоторые сайты меняют ключи. Если решение не удается, повторно извлеките ключ сайта.


Связанные руководства


Получите правильный ключ сайта —решить с помощью CaptchaAI.

Комментарии для этой статьи отключены.