Erklärt
Der User-Agent-Header ist eines der ältesten Identifikationsmerkmale im Web. Jede HTTP-Anfrage, die ein Client sendet, enthält eine `User-Agent:`-Zeile, die die Client-Software (Browser oder Bibliothek), ihre Version, das Betriebssystem und oft die Rendering-Engine benennt. Server verwenden ihn für Content-Negotiation (mobile vs. Desktop-Layouts), Analysen und zunehmend für Bot-Erkennung.
Beim Scraping ist der User-Agent das einfachste Signal, das Sie falsch machen können. Standard-User-Agents gängiger HTTP-Bibliotheken (`python-requests/2.31.0`, `axios/1.5.0`, `okhttp/4.10.0`) sind eindeutige Verräter. Selbst der Standard-User-Agent von Playwright und Puppeteer enthält `HeadlessChrome`, was Anti-Bot-Systeme sofort markieren.
Die naive Lösung besteht darin, bei jeder Anfrage einen Chrome-UA zu setzen. Der Haken ist, dass der User-Agent allein nicht ausreicht - modernes Fingerprinting gleicht den UA mit `sec-ch-ua`-Client-Hints, dem TLS-Fingerprint, dem JavaScript-Navigator-Objekt und dem Accept-Language-Header ab. Einen Chrome-UA zu setzen, aber Pythons TLS-Handshake offenzulassen, erzeugt ein größeres Warnsignal, als einfach den Standard-UA beizubehalten.
So funktioniert es
Wenn Ihr Client eine Verbindung zu einem Server öffnet, enthält die Anforderungszeile Header. Die `User-Agent`-Zeile ist einer davon. Server analysieren sie (oder protokollieren sie nur) und leiten die Anfrage basierend auf dem Inhalt weiter. Ein moderner Chrome-User-Agent unter Windows sieht so aus: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`. Das Präfix 'Mozilla/5.0' ist historisch bedingt; jeder Browser sendet es aus Gründen der Legacy-Kompatibilität.
Echte Browser senden in modernem HTTP auch `sec-ch-ua` ('Sec-CH-UA' Client Hints)-Header, die strukturierte Browser-/Versions-/Plattformdaten enthalten. Anti-Bot-Systeme vergleichen diese mit dem User-Agent-String und markieren Inkonsistenzen. Daher muss die User-Agent-Rotation mit konsistenten `sec-ch-ua-*`-Aktualisierungen und passenden TLS-Fingerprints kombiniert werden.