Inkonsistente oder veraltete User-Agent-Strings lösen die Bot-Erkennung aus und erschweren CAPTCHAs. Hier erfahren Sie, wie Sie sie richtig verwalten.
Warum User-Agent wichtig ist
| Problem | Ergebnis |
|---|---|
Standard-Python-UA (python-requests/2.31) |
Sofortige Bot-Erkennung |
| Veraltetes Chrome UA (v90) | Als verdächtig gekennzeichnet |
| UA ändert sich zwischen Anfragen | Sitzung ungültig |
| UA entspricht nicht den Browserfunktionen | Erkennungsalgorithmen ausgelöst |
Moderner User-Agent-Pool
import random
# Updated Chrome UAs (keep current)
CHROME_UAS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
]
FIREFOX_UAS = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0",
"Mozilla/5.0 (X11; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0",
]
def get_random_ua(browser="chrome"):
"""Get a random modern user-agent."""
if browser == "firefox":
return random.choice(FIREFOX_UAS)
return random.choice(CHROME_UAS)
Sitzungskonsistente UA
Verwenden Sie während einer Sitzung denselben UA:
import requests
class ConsistentSession:
"""Session that maintains consistent fingerprint."""
def __init__(self, user_agent=None):
self.session = requests.Session()
self.user_agent = user_agent or get_random_ua()
self.session.headers.update({
"User-Agent": self.user_agent,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1",
})
def get(self, url, **kwargs):
return self.session.get(url, **kwargs)
def post(self, url, **kwargs):
return self.session.post(url, **kwargs)
# Same UA for all requests in this session
session = ConsistentSession()
session.get("https://example.com/page1")
session.post("https://example.com/form")
UA-Matching mit CaptchaAI
Senden Sie denselben UA an CaptchaAI, den Sie zum Surfen verwenden:
def solve_with_matching_ua(api_key, sitekey, pageurl, user_agent):
"""Send matching user-agent to CaptchaAI."""
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": api_key,
"method": "userrecaptcha",
"googlekey": sitekey,
"pageurl": pageurl,
"userAgent": user_agent, # Match your browser's UA
"json": 1,
}, timeout=30)
return resp.json()
# Use the same UA everywhere
ua = get_random_ua()
session = ConsistentSession(user_agent=ua)
# Browse with this UA
session.get("https://example.com")
# Solve CAPTCHA with same UA
solve_with_matching_ua("YOUR_API_KEY", "SITEKEY", "https://example.com", ua)
Selenium UA Management
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
def create_driver_with_ua(user_agent):
"""Create Selenium driver with specific user-agent."""
options = Options()
options.add_argument(f"user-agent={user_agent}")
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options=options)
# Verify UA is set correctly
actual_ua = driver.execute_script("return navigator.userAgent")
assert user_agent in actual_ua, f"UA mismatch: {actual_ua}"
return driver
# Use same UA for browser and API
ua = get_random_ua()
driver = create_driver_with_ua(ua)
# ... mit CaptchaAI unter demselben User-Agent lösen ...
Vollständige Header für realistische Anfragen
def get_realistic_headers(user_agent=None):
"""Build headers that match a real browser."""
ua = user_agent or get_random_ua()
headers = {
"User-Agent": ua,
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
"Cache-Control": "max-age=0",
}
# Add Chrome-specific headers
if "Chrome" in ua:
headers["sec-ch-ua"] = '"Chromium";v="125", "Google Chrome";v="125", "Not.A/Brand";v="24"'
headers["sec-ch-ua-mobile"] = "?0"
headers["sec-ch-ua-platform"] = '"Windows"'
return headers
FAQ
Beeinflusst der Benutzeragent die CAPTCHA-Schwierigkeit?
Ja. reCAPTCHA und Cloudflare Turnstile analysieren User-Agentzeichenfolgen. Veraltete, fehlende oder Bot-ähnliche UAs lösen härtere Herausforderungen oder höhere Blockraten aus.
Wie oft sollte ich meine UA-Liste aktualisieren?
Aktualisieren Sie alle 1–2 Monate, wenn neue Browserversionen veröffentlicht werden. Veraltete UAs fallen in Erkennungssystemen auf.
Sollte ich für alle Anfragen dasselbe UA verwenden?
Innerhalb einer Sitzung, ja. Rotieren Sie UAs über verschiedene Sitzungen oder Konten hinweg, um zu vermeiden, dass ein nachverfolgbares Muster entsteht.
Verwandte Leitfäden
Erstellen Sie eine intelligentere Automatisierung – Beginnen Sie mit CaptchaAI.