CAPTCHA-Lösungen gibt es in zwei Formen: Tokens, die Sie in Formularübermittlungen einfügen, und Cookies, die Zugriff auf Sitzungsebene gewähren. Die Wahl des richtigen Ansatzes hängt davon ab, mit welchem CAPTCHA Sie es zu tun haben und wie die Zielseite es validiert.
Auf einen Blick
| Aspekt | Tokenbasiert | Cookie-basiert |
|---|---|---|
| Ausgabe | Ein String-Token (500+ Zeichen) | Ein Browser-Cookie (cf_clearance usw.) |
| Verwendet für | reCAPTCHA v2/v3, hCaptcha, Drehkreuz | Cloudflare Challenge-Seiten |
| Wie es verwendet wird | Wird in das Formularfeld oder den POST-Text eingefügt | Wird mit nachfolgenden HTTP-Anfragen gesendet |
| Lebenszeit | 60-120 Sekunden | 30 Minuten bis 24 Stunden |
| Wiederverwendbar | Nein (Einmalgebrauch) | Ja (für die Sitzungsdauer) |
| Browser erforderlich | Nur zur Extraktion | Zum Lösen (vollständiger Browser erforderlich) |
Tokenbasiertes Lösen
Wie es funktioniert
- Extrahieren Sie den Sitekey von der Seite
- Sitekey + Seiten-URL an CaptchaAI senden
- Erhalten Sie eine Token-Zeichenfolge
- Fügen Sie das Token in das ausgeblendete Formularfeld ein
- Senden Sie das Formular ab
Welche CAPTCHAs verwenden Token?
- reCAPTCHA v2: Token geht in den Textbereich
g-recaptcha-response - reCAPTCHA v3: Gleiches Feld, benötigt aber zusätzlich
action(sowieenterprise=1für Enterprise-Sitekeys) - hCaptcha: Token geht in
h-captcha-response - Drehkreuz: Token geht in
cf-turnstile-response
Umsetzung
import requests
import time
API_KEY = "YOUR_API_KEY"
# 1. Solve
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": "6Le-wvkSAAAAAPBMR...",
"pageurl": "https://example.com/login",
"json": "1",
}).json()
task_id = resp["request"]
# 2. Poll
token = None
for _ in range(24):
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["status"] == 1:
token = result["request"]
break
# 3. Submit form with token (no browser needed)
form_response = requests.post("https://example.com/login", data={
"email": "user@example.com",
"password": "password",
"g-recaptcha-response": token,
})
Hauptmerkmale
- Für die Übermittlung ist kein Browser erforderlich: Sie können das Token direkt in eine HTTP-POST-Anfrage einfügen
- Kurzlebig: Token verfallen in 60–120 Sekunden – lösen und sofort verwenden
- Einmalige Verwendung: Jeder Token funktioniert einmal; Lösen Sie die Lösung für jede Formularübermittlung erneut
- Serverseitige Validierung: Die Zielseite sendet das Token zur Überprüfung an Google/Cloudflare/hCaptcha
Cookie-basierte Lösung
Wie es funktioniert
- Eine Challenge-Seite wird bereitgestellt (Cloudflare Challenge, JS Challenge)
- Ein Browser löst die Herausforderung (kann Turnstile intern einbeziehen)
- Der Server setzt ein Sitzungscookie (
cf_clearance) - Alle nachfolgenden Anfragen mit diesem Cookie überspringen die Herausforderung
Welche CAPTCHAs verwenden Cookies
- Cloudflare Challenge-Seiten:
cf_clearance-Cookie - JS Challenge: Cloudflare-JavaScript-Challenge
- Einige WAF-Herausforderungen: Verschiedene Webanwendungs-Firewalls
Umsetzung
from selenium import webdriver
import requests
import time
# 1. Herausforderung im Browser loesen
driver = webdriver.Chrome()
driver.get("https://example.com/protected")
# Warten, bis die Herausforderung abgeschlossen ist (manuell oder ueber regulare Integration)
time.sleep(10)
# 2. Cookies aus dem Browser uebernehmen
cookies = driver.get_cookies()
cf_clearance = next(
(c for c in cookies if c["name"] == "cf_clearance"), None
)
user_agent = driver.execute_script("return navigator.userAgent")
driver.quit()
# 3. Cookies fuer Folgeanfragen nutzen (ohne Browser)
session = requests.Session()
session.headers.update({"User-Agent": user_agent})
for cookie in cookies:
session.cookies.set(cookie["name"], cookie["value"])
# Folgeanfragen mit gleicher Session ausfuehren
for page in range(1, 50):
resp = session.get(f"https://example.com/api/data?page={page}")
print(f"Page {page}: {resp.status_code}")
Hauptmerkmale
- Browser zum Lösen erforderlich: Die Herausforderung erfordert eine vollständige Browserumgebung
- Langlebig: Cookies sind 30 Minuten bis 24 Stunden haltbar
- Wiederverwendbar: Eine Lösung gewährt Zugriff auf viele Anfragen
- IP-gebunden: Das Cookie ist an die IP gebunden, die die Herausforderung gelöst hat
- UA-gebunden: Der User-Agent muss mit dem beim Lösen verwendeten übereinstimmen
Wann welche verwenden
| Szenario | Ansatz | Warum |
|---|---|---|
| Anmeldeformular mit reCAPTCHA | Token | Senden Sie ein Token mit Formulardaten |
| Scraping einer durch Cloudflare geschützten Website | Keks | Eine Lösung, viele Seitenanfragen |
| Formulareinreichung mit Turnstile | Token | In cf-turnstile-response injizieren |
| Zugriff auf eine API hinter Cloudflare | Keks | Cookie für alle API-Aufrufe wiederverwenden |
| Senden mehrerer Formulare | Token (jedes Mal) | Jedes Formular benötigt ein neues Token |
| Massen-Scraping derselben Domain | Keks | Einmal lösen, kratzen, bis der Keks abläuft |
Hybrider Ansatz
Einige Websites verwenden beides: eine Cloudflare Challenge-Seite (Cookie), die ein Formular mit reCAPTCHA (Token) schützt.
# Step 1: Get past Cloudflare (cookie)
session = get_cf_clearance_session("https://example.com")
# Step 2: Load the form (using the cookie session)
html = session.get("https://example.com/submit").text
sitekey = extract_sitekey(html)
# Step 3: Solve reCAPTCHA (token)
token = solve_recaptcha(sitekey, "https://example.com/submit")
# Step 4: Submit form (cookie + token)
resp = session.post("https://example.com/submit", data={
"data": "value",
"g-recaptcha-response": token,
})
Vergleichszusammenfassung
| Funktion | Token | Keks |
|---|---|---|
| Kosten lösen | Pro Formularübermittlung | Pro Sitzung (amortisiert) |
| Zeit lösen | 10–30 Sekunden pro Token | 10–30 Sekunden einmal |
| Anfragen pro Lösung | 1 | Viele (bis zum Ablauf) |
| IP-Flexibilität | Token funktioniert von jeder IP aus | Cookie, das an die Lösung von IP gebunden ist |
| Browser zur Nutzung | Nicht erforderlich | Nicht erforderlich (nur das Cookie) |
| Verfallsrisiko | 60-120er | 30 Minuten – 24 Stunden |
FAQ
Kann ich ein Token-basiertes CAPTCHA in ein Cookie-basiertes CAPTCHA umwandeln?
Nein. Der Ansatz hängt davon ab, wie die Site validiert. reCAPTCHA verwendet immer Token; Cloudflare Challenge verwendet immer Cookies.
Was ist beim Schaben mit hohem Volumen günstiger?
Cookie-basiert ist, sofern verfügbar, weitaus günstiger. Eine Lösung deckt Tausende von Anfragen ab. Tokenbasiert erfordert eine Lösung pro Formularübermittlung.
Bewältigt CaptchaAI beides?
Ja. Tokenbasierte CAPTCHAs geben eine Tokenzeichenfolge zurück. Für Cloudflare Challenge-Seiten können Sie den Turnstile-Solver verwenden, um das zum Abschließen der Herausforderung erforderliche Token abzurufen und dann das resultierende Cookie zu extrahieren.
Lösen Sie CAPTCHAs mit CaptchaAI
Holen Sie sich Ihren API-Schlüssel untercaptchaai.com.
Verwandte Leitfäden
- Cloudflare Challenge cf_clearance Cookie-Anleitung
- Extrahieren von reCAPTCHA-Parametern
- Turnstile vs. hCaptcha vs. reCAPTCHA