Auf Anmeldeseiten stößt man am häufigsten auf CAPTCHAs. Ganz gleich, ob es sich um reCAPTCHA v2, v3, Turnstile oder ein Bild-CAPTCHA handelt, CaptchaAI löst die Herausforderung, während Ihre Automatisierung das Ausfüllen und Senden von Formularen übernimmt.
Gängige CAPTCHA-Typen für die Anmeldung
| CAPTCHA | Wie es erscheint | CaptchaAI-Methode |
|---|---|---|
| reCAPTCHA v2 | Kontrollkästchen oder Herausforderung vor dem Absenden | method=userrecaptcha |
| reCAPTCHA v3 | Unsichtbares Scoring, blockiert Benutzer mit niedrigem Score | method=userrecaptcha&version=v3 |
| Cloudflare Turnstile | Widget vor dem Anmeldeformular | method=turnstile |
| Bild-CAPTCHA | Textbild zum Eingeben | method=base64 |
Methode 1: HTTP-Anfragen (kein Browser)
Für Anmeldeformulare, die Standard-POST-Anfragen akzeptieren:
import requests
import time
API_KEY = "YOUR_API_KEY"
def solve_recaptcha(site_key, page_url):
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY, "method": "userrecaptcha",
"googlekey": site_key, "pageurl": page_url
})
task_id = resp.text.split("|")[1]
for _ in range(60):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get", "id": task_id
})
if result.text == "CAPCHA_NOT_READY": continue
if result.text.startswith("OK|"): return result.text.split("|")[1]
raise Exception(result.text)
raise TimeoutError()
# Login flow
session = requests.Session()
login_url = "https://example.com/login"
# Load login page to get cookies and site key
page = session.get(login_url)
# Extract site_key from the page HTML...
site_key = "6Le-wvkS..."
# Solve CAPTCHA
token = solve_recaptcha(site_key, login_url)
# Submit login form
resp = session.post(login_url, data={
"username": "user@example.com",
"password": "your_password",
"g-recaptcha-response": token
})
if resp.url != login_url:
print("Login successful!")
# session now has auth cookies for subsequent requests
Methode 2: Selenium (Python)
Für Anmeldeseiten, die die Ausführung von JavaScript erfordern:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import requests
import time
API_KEY = "YOUR_API_KEY"
options = webdriver.ChromeOptions()
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
# Navigate to login page
driver.get("https://example.com/login")
wait = WebDriverWait(driver, 10)
# Fill in credentials
username_field = wait.until(EC.presence_of_element_located((By.NAME, "username")))
username_field.send_keys("user@example.com")
driver.find_element(By.NAME, "password").send_keys("your_password")
# Extract site key and solve
recaptcha = driver.find_element(By.CLASS_NAME, "g-recaptcha")
site_key = recaptcha.get_attribute("data-sitekey")
token = solve_recaptcha(site_key, driver.current_url)
# Inject token
driver.execute_script(
f"document.getElementById('g-recaptcha-response').innerHTML = '{token}';"
)
# Submit
driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]').click()
wait.until(EC.url_changes(driver.current_url))
print(f"Logged in! Now at: {driver.current_url}")
Methode 3: Puppeteer (Node.js)
const puppeteer = require("puppeteer");
const axios = require("axios");
const API_KEY = "YOUR_API_KEY";
async function solveRecaptcha(siteKey, pageUrl) {
const submit = await axios.get("https://ocr.captchaai.com/in.php", {
params: {
key: API_KEY,
method: "userrecaptcha",
googlekey: siteKey,
pageurl: pageUrl,
},
});
const taskId = submit.data.split("|")[1];
while (true) {
await new Promise((r) => setTimeout(r, 5000));
const result = await axios.get("https://ocr.captchaai.com/res.php", {
params: { key: API_KEY, action: "get", id: taskId },
});
if (result.data === "CAPCHA_NOT_READY") continue;
if (result.data.startsWith("OK|")) return result.data.split("|")[1];
throw new Error(result.data);
}
}
(async () => {
const browser = await puppeteer.launch({ headless: "new" });
const page = await browser.newPage();
await page.goto("https://example.com/login");
// Fill credentials
await page.type("#username", "user@example.com");
await page.type("#password", "your_password");
// Get site key and solve
const siteKey = await page.$eval(".g-recaptcha", (el) =>
el.getAttribute("data-sitekey")
);
const token = await solveRecaptcha(siteKey, page.url());
// Inject and submit
await page.evaluate(
(t) => (document.getElementById("g-recaptcha-response").innerHTML = t),
token
);
await page.click('button[type="submit"]');
await page.waitForNavigation();
console.log("Logged in:", page.url());
await browser.close();
})();
Umgang mit Multi-Faktor + CAPTCHA
Einige Websites kombinieren CAPTCHAs mit Multi-Faktor-Authentifizierung:
# Step 1: Solve CAPTCHA and submit login
token = solve_recaptcha(site_key, login_url)
resp = session.post(login_url, data={
"username": "user@example.com",
"password": "your_password",
"g-recaptcha-response": token
})
# Step 2: Handle MFA page (if redirected)
if "verify" in resp.url or "mfa" in resp.url:
# Your MFA code logic here
mfa_code = get_mfa_code()
resp = session.post(resp.url, data={"code": mfa_code})
# Step 3: Verify logged in
assert "dashboard" in resp.url
Fehlerbehebung
| Problem | Ursache | Lösung |
|---|---|---|
| Die Anmeldung kehrt zur CAPTCHA-Seite zurück | Token abgelaufen | Innerhalb von 60 Sekunden lösen und absenden |
| „Ungültige Zugangsdaten“ mit korrektem Passwort | CSRF-Token fehlt | Extrahieren Sie das CSRF-Token von der Anmeldeseite und fügen Sie es ein |
| Sitzung nach Anmeldung verloren | Cookies bleiben nicht bestehen | Verwenden Sie requests.Session() oder Browser-Cookies |
| reCAPTCHA v3 blockiert trotz Token | Punktzahl zu niedrig | CaptchaAI optimiert für hohe Punktzahlen; Aktionsparameter überprüfen |
FAQ
Kann ich die Anmeldung bei jeder Website automatisieren?
CaptchaAI verwaltet die CAPTCHA-Komponente. Ihre Automatisierung muss das Anmeldeformular selbst verwalten (Felder ausfüllen, absenden, Cookies verwalten). Die Rechtmäßigkeit hängt von Ihrer Berechtigung zum Zugriff auf das Konto ab.
Benötige ich einen Browser für die Login-Automatisierung?
Nicht immer. Viele Anmeldeseiten akzeptieren Standard-HTTP-POST-Anfragen. Verwenden Sie einen Browser nur, wenn die Anmeldung die Ausführung von JavaScript oder komplexe Interaktionen erfordert.
Wie gehe ich mit der Sitzungswartung nach der Anmeldung um?
Verwenden Sie requests.Session() in Python oder verwalten Sie Cookies in Ihrer Browserinstanz. Die Sitzungscookies aus der Anmeldung werden für alle nachfolgenden authentifizierten Anfragen benötigt.
Verwandte Leitfäden
- Selenium CAPTCHA-Handling mit Python
- Puppeteer CAPTCHA-Lösung mit Node.js
- Playwright CAPTCHA-Handling