Unsichtbares reCAPTCHA wird ausgelöst, wenn ein Benutzer auf eine Schaltfläche klickt oder ein Formular absendet – es gibt kein Kontrollkästchen. Die Herausforderung erfolgt im Hintergrund und die Seite wird erst fortgesetzt, wenn das Token überprüft wurde. Die Lösung über CaptchaAI ähnelt Standard v2, mit einem wichtigen Zusatz: Sie müssen invisible=1 in Ihrer API-Anfrage übergeben.
Der größte Unterschied bei der Integration besteht darin, wie Sie das Token einfügen. Die meisten unsichtbaren Implementierungen verwenden eine Rückruffunktion anstelle des versteckten Felds g-recaptcha-response. Sie müssen diesen Rückruf finden und anrufen.
Nicht sicher, ob es unsichtbar oder Standard v2 ist? LesenreCAPTCHA v2 vs. Invisible erklärtfür Erkennungstipps.
Was Sie brauchen
| Anforderung | Einzelheiten |
|---|---|
| CaptchaAI API-Schlüssel | captchaai.com/api.php |
| Sitekey | Von data-sitekey auf dem Widget oder der Schaltfläche |
| Seiten-URL | Vollständige URL, unter der das unsichtbare CAPTCHA ausgeführt wird |
| Browser-Tool | Selenium/Puppeteer, um den Rückruf auszuführen |
Schritt 1: Unsichtbares reCAPTCHA erkennen
Suchen Sie im HTML der Seite nach diesen Mustern:
<!-- Option 1: div with data-size="invisible" -->
<div class="g-recaptcha" data-sitekey="6LdKlZEU..." data-size="invisible" data-callback="onSubmit"></div>
<!-- Option 2: button with data-sitekey (invisible by default) -->
<button data-sitekey="6LdKlZEU..." data-callback="onSubmit">Submit</button>
<!-- Option 3: programmatic execution -->
<script>
grecaptcha.execute('6LdKlZEU...', {action: 'submit'});
</script>
Wenn Sie data-size="invisible", eine Schaltfläche mit data-sitekey oder grecaptcha.execute() ohne Container sehen, handelt es sich um unsichtbares reCAPTCHA.
Schritt 2: An CaptchaAI senden
import requests
response = requests.get("https://ocr.captchaai.com/in.php", params={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "6LdKlZEUAAAAAPoxm...",
"pageurl": "https://example.com/signup",
"invisible": 1,
"json": 1
})
task_id = response.json()["request"]
const params = new URLSearchParams({
key: "YOUR_API_KEY", method: "userrecaptcha",
googlekey: "6LdKlZEUAAAAAPoxm...",
pageurl: "https://example.com/signup",
invisible: 1, json: 1,
});
const res = await fetch(`https://ocr.captchaai.com/in.php?${params}`);
const { request: taskId } = await res.json();
Schritt 3: Umfrage zum Ergebnis
import time
for _ in range(40):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY", "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
token = result["request"]
break
if result.get("request") != "CAPCHA_NOT_READY":
raise RuntimeError(f"Error: {result['request']}")
Schritt 4: Injizieren Sie das Token per Rückruf
Dies ist der entscheidende Schritt. Unsichtbares reCAPTCHA erwartet eine Rückruffunktion, nicht nur einen versteckten Feldwert:
# Selenium example
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com/signup")
# Find the callback name
callback = driver.execute_script("""
var el = document.querySelector('[data-callback]');
if (el) return el.getAttribute('data-callback');
var btn = document.querySelector('[data-sitekey]');
if (btn) return btn.getAttribute('data-callback');
return null;
""")
# Execute the callback with the token
if callback:
driver.execute_script(f"window['{callback}']('{token}');")
else:
# Fallback: fill hidden field and submit
driver.execute_script(f"""
document.getElementById('g-recaptcha-response').innerHTML = '{token}';
document.querySelector('form').submit();
""")
// Puppeteer example
await page.evaluate((token) => {
const el = document.querySelector('[data-callback]') || document.querySelector('[data-sitekey]');
const callbackName = el?.getAttribute('data-callback');
if (callbackName && window[callbackName]) {
window[callbackName](token);
} else {
document.getElementById('g-recaptcha-response').innerHTML = token;
document.querySelector('form').submit();
}
}, token);
Vollständige Arbeitsfunktion
import requests
import time
def solve_invisible_recaptcha(api_key, sitekey, page_url):
submit = requests.get("https://ocr.captchaai.com/in.php", params={
"key": api_key, "method": "userrecaptcha", "googlekey": sitekey,
"pageurl": page_url, "invisible": 1, "json": 1
}).json()
if submit.get("status") != 1:
raise RuntimeError(f"Submit error: {submit.get('request')}")
task_id = submit["request"]
for _ in range(40):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": api_key, "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
return result["request"]
if result.get("request") != "CAPCHA_NOT_READY":
raise RuntimeError(f"Solve error: {result.get('request')}")
raise TimeoutError("Timed out")
token = solve_invisible_recaptcha("YOUR_API_KEY", "6LdKlZEU...", "https://example.com/signup")
Vollständig lauffähiges Beispiel
Benötigen Sie ein vollständig funktionierendes Projekt mit Umgebungseinrichtung, Abfragen, Wiederholungsversuchen und Fehlerbehandlung?
Das vollständige ausführbare Beispiel finden Sie auf GitHub →
FAQ
Woher weiß ich, ob reCAPTCHA unsichtbar ist?
Suchen Sie nach data-size="invisible" im Widget-Div oder einer Schaltfläche mit data-sitekey. Wenn kein sichtbares Kontrollkästchen vorhanden ist, ist es wahrscheinlich unsichtbar.
Benötige ich unsichtbar=1 für unsichtbares reCAPTCHA?
Ja. Ohne diese Angabe behandelt CaptchaAI die Aufgabe als Standard v2 und das Token wird möglicherweise abgelehnt.
Was passiert, wenn ich die Rückruffunktion nicht finden kann?
Versuchen Sie, das versteckte Feld g-recaptcha-response auszufüllen und das Formular abzusenden. Einige unsichtbare Implementierungen greifen auf diese Methode zurück. Wenn dies fehlschlägt, durchsuchen Sie die JavaScript-Seite nach Funktionen, die reCAPTCHA-Antworten verarbeiten.
Kann unsichtbares reCAPTCHA Enterprise sein?
Ja. Fügen Sie Ihrer Anfrage sowohl invisible=1 als auch enterprise=1 hinzu.
Warum antwortet die Seite nach der Rückrufausführung nicht?
Möglicherweise ist der Rückrufname falsch oder die Seite erwartet möglicherweise zusätzliche Formularfelder. Überprüfen Sie den genauen Rückrufnamen und stellen Sie sicher, dass alle erforderlichen Formularfelder ausgefüllt sind, bevor der Rückruf ausgelöst wird.
Beginnen Sie mit der Lösung des unsichtbaren reCAPTCHA
Holen Sie sich Ihren API-Schlüssel untercaptchaai.com/api.php. Fügen Sie invisible=1 zu Ihrem v2-Lösungscode hinzu und verwenden Sie das obige Callback-Injection-Muster.
Verwandte Leitfäden
- reCAPTCHA Invisible erklärt
- Häufige reCAPTCHA Invisible-Fehler
- reCAPTCHA v2 vs. Invisible erklärt
- So lösen Sie den reCAPTCHA v2-Rückruf mithilfe der API
Diskussionen (0)
Beteiligen Sie sich an der Unterhaltung
Melden Sie sich an, um Ihre Meinung zu teilen.
AnmeldenNoch keine Kommentare.