Solução de Problemas

ERROR_WRONG_GOOGLEKEY: Guia completo de diagnóstico e correção

ERROR_WRONG_GOOGLEKEY significa que o parâmetro googlekey é inválido ou não corresponde à página de destino. Este guia cobre todas as causas e soluções.


O que causa esse erro

Causa Como identificar
Chave de site incorreta extraída A chave não corresponde à origem da página
Chave do site empresarial enviada como padrão Precisa do parâmetro enterprise=1
Incompatibilidade de chave reCAPTCHA invisível Precisa do parâmetro invisible=1
Chave de site dinâmica alterada Chave girada desde a extração
Sitekey da página errada Extraído de iframe ou domínio diferente
Chave de site desatualizada codificada A chave era válida anteriormente

Como encontrar a chave do site correta

Método 1: pesquisa na fonte da página

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

Método 2: DevTools do navegador

  1. Abra a página de destino no Chrome
  2. Pressione F12 → guia Elementos
  3. Pressione Ctrl+F e procure por sitekey
  4. Encontre o atributo data-sitekey="..."
  5. Copie o valor (sequência alfanumérica de 40 caracteres)

Método 3: guia Rede

  1. Abra a guia F12Rede
  2. Filtrar por recaptcha
  3. Procure solicitações para google.com/recaptcha/api2/anchor
  4. Encontre o parâmetro k= no URL – esse é o sitekey

Validação antes de enviar

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://staging.example.com/qa-login")
validate_sitekey(sitekey)

Manipulação do reCAPTCHA Enterprise

As chaves de site corporativas têm a mesma aparência, mas exigem o parâmetro 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)

Lidando com reCAPTCHA invisível

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,
}

Extração dinâmica de Sitekey

Alguns sites carregam sitekeys via JavaScript. Use um navegador para extraí-los:

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

Solução de problemas

Problema Causa Correção
A chave parece correta, mas o erro persiste Chave do site empresarial Adicionar enterprise=1
Principais mudanças entre visitas Chave de site dinâmica Extraia uma chave nova a cada vez
Várias chaves de site na página Selecionado errado Combine a chave com o formato correto
Chave do iframe CDN Chave do domínio errada Extrair da página principal, não do iframe
Chave de site vazia extraída Renderizado em JavaScript Use Selênio para extrair

Perguntas frequentes

Qual é a aparência de uma chave de site válida?

Uma chave de site reCAPTCHA normalmente contém 40 caracteres de texto alfanumérico mais hifens. Exemplo: 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-.

A mesma chave de site pode funcionar para v2 e v3?

Não. v2 e v3 usam chaves de site diferentes. Verifique a origem do script reCAPTCHA para determinar a versão.

Devo armazenar em cache a chave do site?

Cache por curtos períodos (minutos a horas). Alguns sites alternam chaves. Se a solução começar a falhar, extraia novamente a chave do site.


Guias Relacionados


Obtenha a chave do site correta —resolver com CaptchaAI.

Os comentários estão desativados para este artigo.