Vergleiche

Token-basierte vs. Cookie-basierte CAPTCHA-Lösung

Die kurze Antwort zuerst: Für einzelne Formulare mit reCAPTCHA oder Cloudflare Turnstile arbeiten Sie Token-basiert – Abfrage lösen, Token ins Formularfeld eintragen, absenden. Für großflächiges Scraping hinter einer Cloudflare Challenge lohnt der Cookie-basierte Weg: einmal lösen, das cf_clearance-Cookie behalten, viele Anfragen damit durchreichen. Welcher Ansatz passt, entscheidet die Zielseite – nicht Ihre Vorliebe.


Auf einen Blick

Aspekt Token-basiert Cookie-basiert
Ausgabe String-Token (500+ Zeichen) Browser-Cookie (cf_clearance)
Einsatzfälle reCAPTCHA v2/v3, Turnstile Cloudflare Challenge-Seiten
Verwendung ins Formularfeld / den POST-Body mit jeder HTTP-Anfrage mitgeschickt
Lebensdauer 60–120 Sekunden 30 Minuten bis 24 Stunden
Wiederverwendbar nein (Einmalgebrauch) ja (Sitzungsdauer)
Browser nötig nur zur Extraktion zum Lösen (voller Browser)

Entscheidungsmatrix: welcher Ansatz wann?

Szenario Ansatz
Anmeldeformular mit reCAPTCHA Token
Formular mit Turnstile Token
Mehrere Formulare senden Token (je Formular)
Cloudflare-geschützte Seite scrapen Cookie
API-Zugriff hinter Cloudflare Cookie
Massen-Scraping derselben Domain Cookie

Token-basiert: lösen, einfügen, absenden

Der Token-Weg passt für einzelne Formulare mit CAPTCHA: Abfrage lösen, Token-String ins passende Formularfeld eintragen, absenden – ganz ohne Browser für die Übermittlung.

  1. Sitekey aus der Seite extrahieren
  2. Sitekey und Seiten-URL an CaptchaAI übermitteln
  3. Token-String zurückerhalten
  4. Token in das verborgene Formularfeld eintragen
  5. Formular absenden
CAPTCHA-Typ Zielfeld
reCAPTCHA v2 g-recaptcha-response
reCAPTCHA v3 g-recaptcha-response (plus action, Enterprise: enterprise=1)
Turnstile cf-turnstile-response
hCaptcha h-captcha-response (von CaptchaAI nicht gelöst)
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,
})

Tokens sind kurzlebig: Sie verfallen nach 60–120 Sekunden, also sofort verwenden. Jeder funktioniert genau einmal – für jede Übermittlung lösen Sie neu. Die Zielseite prüft ihn serverseitig bei Google, Cloudflare oder hCaptcha. CaptchaAI löst reCAPTCHA v2/v3 und Turnstile; hCaptcha dient hier nur als Beispiel und wird nicht gelöst.


Steht vor der ganzen Seite eine Cloudflare Challenge, lösen Sie sie einmal im Browser und ernten das cf_clearance-Cookie. Jede weitere Anfrage damit überspringt die Abfrage – ideal beim Scraping über viele Seiten.

  1. Die Seite liefert eine Challenge (Cloudflare Challenge, JS Challenge)
  2. Ein Browser löst die Challenge (intern teils über Turnstile)
  3. Der Server setzt ein Sitzungscookie (cf_clearance)
  4. Jede weitere Anfrage mit diesem Cookie überspringt die Challenge
Mechanismus Hinweis
Cloudflare Challenge-Seiten setzen cf_clearance
JS Challenge reine JavaScript-Abfrage von Cloudflare
WAF-Abfragen je nach Web Application Firewall
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}")

Zum Lösen brauchen Sie einen vollständigen Browser; danach genügt das Cookie. Es hält 30 Minuten bis 24 Stunden und bedient in dieser Zeit viele Anfragen. Wichtig: Es ist an lösende IP und User-Agent gebunden – wechseln Sie Proxy oder User-Agent, erscheint die Challenge erneut.


Manche Seiten kombinieren beides – eine Cloudflare Challenge (Cookie) schützt ein Formular mit reCAPTCHA (Token). Dann durchlaufen Sie beide Wege nacheinander:

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

Kosten und Durchsatz im Vergleich

Merkmal Token Cookie
Aufwand pro Zugriff je Übermittlung je Sitzung (amortisiert)
Lösungszeit 10–30 s pro Token 10–30 s einmalig
Anfragen pro Lösung 1 viele (bis zum Ablauf)
IP-Flexibilität von jeder IP an die lösende IP gebunden
Ablaufrisiko 60–120 s 30 Minuten – 24 Stunden

Ein Detail geht oft unter: CaptchaAI rechnet pro gleichzeitigem Thread ab, nicht pro Lösung – von BASIC (15 $/Monat, 5 Threads) bis ENTERPRISE (300 $/Monat, 200 Threads), jeweils mit unbegrenzten Lösungen pro Thread. Entscheidend ist nicht der Token-Preis, sondern wie lange ein Thread belegt bleibt. Der Cookie-Weg gibt seinen Thread nach dem Lösen sofort frei; der Token-Weg belegt ihn für jedes Formular erneut. Bei großem Scraping-Volumen entlastet das Ihre Thread-Zuteilung spürbar.


Häufige Fragen

Zwischen 30 Minuten und 24 Stunden – Cloudflare legt die Dauer je nach Seitenkonfiguration fest. Solange es gültig ist und aus derselben IP mit demselben User-Agent stammt, überspringen Ihre Anfragen die Challenge.

Warum läuft mein Token ab, bevor das Formular ankommt?

Tokens leben nur 60–120 Sekunden. Vergeht zwischen Lösung und Absenden zu viel Zeit – etwa durch eine Warteschlange –, ist der Token beim Eintreffen ungültig. Lösen Sie deshalb erst unmittelbar vor der Übermittlung und senden sofort ab.

Ja. Das cf_clearance-Cookie ist an IP und User-Agent der lösenden Sitzung gebunden; wechseln Sie danach Proxy oder User-Agent, verwirft Cloudflare es. Beachten Sie zudem: In der EU gelten IP-Adressen als personenbezogene Daten – prüfen Sie bei Scraping-Projekten Ihre Rechtsgrundlage nach DSGVO.

Brauche ich für Token-basiertes Lösen einen Browser?

Nein, für die Übermittlung genügen HTTP-Anfragen: Sitekey aus dem Seitenquelltext lesen, Token über die API holen, ins Formularfeld schreiben. Einen Browser brauchen Sie höchstens zum Auslesen des Sitekeys, nicht zum Absenden.

Ja. reCAPTCHA v2/v3 und Turnstile geben einen Token-String zurück. Für Cloudflare Challenge-Seiten nutzen Sie den Turnstile- bzw. Cloudflare-Challenge-Solver und extrahieren danach das cf_clearance-Cookie. hCaptcha und FunCaptcha löst CaptchaAI nicht.


CAPTCHAs mit CaptchaAI lösen

Holen Sie sich Ihren API-Schlüssel unter captchaai.com und lösen Sie Token- wie Cookie-Fälle im selben Workflow.


Verwandte Leitfäden

Kommentare sind für diesen Artikel deaktiviert.