ERROR_WRONG_GOOGLEKEY berarti parameter googlekey tidak valid atau tidak sesuai dengan halaman target. Panduan ini mencakup setiap penyebab dan perbaikannya.
Apa Penyebab Error Ini
| Penyebab | Cara Mengidentifikasi |
|---|---|
| Sitekey yang diekstraksi salah | Key tidak cocok dengan source halaman |
| Sitekey Enterprise dikirim sebagai standar | Perlu parameter enterprise=1 |
| Mismatch invisible reCAPTCHA | Perlu parameter invisible=1 |
| Sitekey dinamis berubah | Key di-rotate sejak ekstraksi |
| Sitekey halaman yang salah | Diekstraksi dari iframe atau domain lain |
| Sitekey lama yang di-hardcode | Key sebelumnya valid |
Cara Menemukan Sitekey yang Benar
Metode 1: Pencarian Source Halaman
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}")
Metode 2: Browser Developer Tools
- Buka halaman target di Chrome
- Tekan F12 → tab Elements
- Tekan Ctrl+F dan cari
sitekey - Temukan atribut
data-sitekey="..." - Salin nilainya (string alfanumerik 40 karakter)
Metode 3: Tab Network
- Buka F12 → tab Network
- Filter dengan
recaptcha - Cari request ke
google.com/recaptcha/api2/anchor - Temukan parameter
k=di URL — itulah sitekey-nya
Validasi Sebelum Submit
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)
Menangani reCAPTCHA Enterprise
Sitekey Enterprise terlihat sama tetapi memerlukan parameter 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)
Menangani reCAPTCHA Invisible
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,
}
Ekstraksi Sitekey Dinamis
Beberapa situs memuat sitekey melalui JavaScript. Gunakan browser untuk mengekstraknya:
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
Pemecahan Masalah
| Masalah | Penyebab | Perbaikan |
|---|---|---|
| Key terlihat benar tapi error tetap terjadi | Sitekey Enterprise | Tambahkan enterprise=1 |
| Berubah antar kunjungan | Sitekey dinamis | Ekstrak sitekey baru setiap kali |
| Beberapa sitekey di halaman | Key yang salah dipilih | Cocokkan key dengan form yang tepat |
| Key dari iframe CDN | Key domain yang salah | Ekstrak dari halaman utama, bukan iframe |
| Sitekey kosong saat diekstraksi | Di-render via JavaScript | Gunakan Selenium untuk mengekstrak |
Pertanyaan Umum
Seperti apa tampilan sitekey yang valid?
Sitekey reCAPTCHA biasanya terdiri dari 40 karakter alfanumerik ditambah tanda hubung. Contoh: 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-.
Bisakah sitekey yang sama berfungsi untuk v2 dan v3?
Tidak. v2 dan v3 menggunakan sitekey yang berbeda. Periksa source script reCAPTCHA untuk menentukan versinya.
Haruskah saya menyimpan sitekey dalam cache?
Cache untuk waktu singkat (menit hingga jam). Beberapa situs merotasi key. Jika solve mulai gagal, ekstrak ulang sitekey.
Panduan Terkait
Dapatkan sitekey yang tepat — solve dengan CaptchaAI.