故障排查

ERROR_WRONG_GOOGLEKEY:完整诊断和修复指南

ERROR_WRONG_GOOGLEKEY 表示googlekey 参数无效或与目标页面不匹配。本指南涵盖了所有原因和修复方法。


导致此错误的原因是什么

原因 如何识别
提取的站点密钥不正确 键与页面源不匹配
作为标准发送的企业站点密钥 需要enterprise=1参数
看不见的 reCAPTCHA 密钥不匹配 需要invisible=1参数
动态站点密钥已更改 钥匙自提取后轮换
页面的 sitekey 错误 从 iframe 或不同域中提取
硬编码过时的站点密钥 密钥之前有效

如何找到正确的 Sitekey

方法一:页面源码搜索

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}")

方法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= 参数 — 这就是 sitekey

提交前验证

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)

处理 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-

相同的 sitekey 可以同时适用于 v2 和 v3 吗?

不会。v2 和 v3 使用不同的 sitekey。检查 reCAPTCHA 脚本源以确定版本。

我应该缓存站点密钥吗?

短期缓存(几分钟到几小时)。有些网站会轮换密钥。如果解决开始失败,请重新提取站点密钥。


相关指南


获取正确的站点密钥 —用CaptchaAI解决.

该文章已禁用评论。