Browser-Fingerprinting für Scraper erklärt
Browser-Fingerprinting bedeutet, einen Besucher anhand der kombinierten Merkmale seines Browsers zu erkennen, nicht über ein Cookie oder ein Konto. Websites nutzen es, um wiederkehrende Besucher zu erkennen, Betrug aufzuspüren und Automatisierung zu identifizieren. Wenn Sie das Web scrapen, werden Sie ihm begegnen. Dieser Leitfaden erklärt, was gemessen wird, warum eine einzelne Abweichung Ärger macht und wie Sie ein konsistentes, gutartiges Profil für die Sammlung öffentlicher Daten führen. Er erklärt auch die Grenzen dessen, was Fingerprint-Feinabstimmung leisten kann und soll.
Woraus ein Fingerprint besteht
Kein einzelner Wert identifiziert einen Browser für sich allein, aber viele kleine Werte zusammen tun das oft. Übliche Eingaben sind:
- User-Agent und Client Hints. Der Browsername, die Version und das Betriebssystem, die der Browser meldet.
- Bildschirm- und Fenstergeometrie. Bildschirmgröße, Farbtiefe, Geräte-Pixelverhältnis und die Größe des Viewports.
- Sprache und Zeitzone. Der Header
Accept-Language,navigator.languagesund die Zeitzone, die der Browser meldet. - Installierte Schriften. Die Schriften, die die Seite erkennen kann, die sich zwischen Betriebssystemen und installierter Software unterscheiden.
- Canvas-, WebGL- und Audioausgabe. Kleine Unterschiede darin, wie der Grafik- oder Audio-Stack ein Testbild oder einen Testton zeichnet oder verarbeitet.
- Netzwerkmerkmale. Der TLS-Handshake, die HTTP/2-Einstellungen und die Reihenfolge der Request-Header. Diese sind für den Server sichtbar, noch bevor irgendein JavaScript läuft.
Fingerprinting-Skripte kombinieren diese Werte zu einem Hash oder einem Score. Je mehr Signale stabil und ungewöhnlich sind, desto eindeutiger ist das Ergebnis.
Warum eine Abweichung auffällt
Ein echter Browser ist in sich konsistent. Sein Betriebssystem passt zu seinen Schriften, seine Zeitzone passt zu seiner Spracheinstellung, und seine Bildschirmgröße passt zu dem Gerät, auf dem er läuft. Scraper brechen diese Konsistenz oft, ohne es zu wollen:
- Ein User-Agent, der von einem Desktop-Browser kopiert wurde, gesendet von einem Server, auf dem keine Schriften installiert sind.
- Ein deutscher
Accept-Language-Header bei einer Anfrage, deren IP-Adresse in einem anderen Land liegt, mit einer Zeitzone, die zu keinem von beiden passt. - Eine Headless-Umgebung, die eine Fenstergröße meldet, die kein echter Monitor verwendet.
- Ein brandneues Profil bei jedem Lauf, sodass Cookies und Verlauf nie wie ein wiederkehrender Besucher aussehen.
Jede Abweichung ist ein kleines Signal. Zusammen können sie eine Anfrage von "gewöhnlicher Besucher" zu "braucht einen genaueren Blick" verschieben.
Schritt 1: Ihr eigenes Setup messen
Sie sehen, was eine Seite über Ihren Client erfährt, wenn Sie eine Fingerprint-Testseite laden, die Sie kontrollieren, oder eine lokale Diagnoseseite, die Sie betreiben. Schauen Sie sich die Werte an und fragen Sie, ob sie einen einzigen, stimmigen Rechner beschreiben. Hier ist ein minimales Playwright-Beispiel, das einige davon ausgibt:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context(locale="en-GB", timezone_id="Europe/London")
page = context.new_page()
page.goto("https://example.com") # durch eine Seite ersetzen, die Ihnen gehört
print(page.evaluate("""() => ({
language: navigator.language,
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
platform: navigator.platform,
viewport: [innerWidth, innerHeight]
})"""))
browser.close()
Schritt 2: Eine Identität pro Profil behalten
Die nützlichste Gewohnheit ist, jede Scraping-Identität als ein Profil zu behandeln. Geben Sie ihr einen festen Satz von Merkmalen und behalten Sie diesen für ihre ganze Lebensdauer:
- Ein Browser-Build, ein User-Agent und ein Betriebssystem.
- Locale, Sprache und Zeitzone, die zur Region des Traffics passen.
- Ein Viewport und ein Geräte-Skalierungsfaktor, die zu einem echten Bildschirm passen.
- Ein dauerhafter Cookie-Speicher, damit sich das Profil wie ein wiederkehrender Besucher verhält.
Eines dieser Merkmale bei jeder Anfrage zu ändern, wirkt verdächtiger, als es stabil zu halten. Konsistenz macht ein Profil gewöhnlich.
Schritt 3: Das Profil wie einen Besucher takten
Fingerprinting ist nur eine Eingabe. Websites beobachten auch, wie schnell sich ein Profil durch die Seite bewegt. Ein Profil, das in einer Minute zweihundert Produktseiten lädt, ist kein Mensch, egal was sein Fingerprint sagt. Verteilen Sie die Anfragen, cachen Sie Ergebnisse und hören Sie auf, wenn eine Seite es anzeigt. Die Checkliste zum Scraping ohne Sperre behandelt das Takten ausführlicher.
Schritt 4: Die Grenzen kennen
Fingerprint-Feinabstimmung kann ein automatisiertes Profil nicht so aussehen lassen wie eine Person, die gar nicht da ist. Websites, die auf Fingerprinting setzen, kombinieren es meist mit Ratenlimits, Kontoprüfungen und manchmal einem Captcha. Wenn ein Captcha erscheint, brauchen Sie ein Token von einem Solver und keine weiteren Fingerprint-Anpassungen. Der Live-Captcha-Typ bei Scarnox ist PopularCaptcha; der PopularCaptcha-Python-Leitfaden zeigt die Anfrage. Für das größere Bild, welche Widgets es gibt, lesen Sie Captcha-Typen erklärt.
Wichtiger noch: Fingerprint-Umgehung ist keine Lizenz, die Regeln einer Website zu ignorieren. Hat der Betreiber den automatisierten Zugriff eingeschränkt, ist der richtige Schritt, aufzuhören, und nicht, Ihr Profil schwerer erkennbar zu machen. Fingerprinting ist außerdem ein Datenschutzthema. Manche Websites nutzen es, um Menschen über mehrere Besuche hinweg zu verfolgen, und das ist ein weiterer Grund, nur das zu sammeln, was Ihr Projekt braucht.
Verantwortungsvoll scrapen
- Lesen Sie die
robots.txtund die Bedingungen, bevor Sie eine Website scrapen. - Verwenden Sie weniger, langsamere Anfragen und cachen Sie, was Sie bereits gesammelt haben.
- Bauen Sie keine Profile, um echte Menschen zu imitieren oder eine Sperre zu umgehen.
- Speichern Sie keine personenbezogenen Daten, die Sie nicht brauchen, und gehen Sie sorgfältig mit allem um, was Sie speichern.
Wohin als Nächstes
Wenn Ihr Ziel hinter einer Prüfung auf Browser-Ebene liegt, beginnen Sie mit der Erkennung von Headless-Browsern, die die Signale spezifisch für automatisierte Browser behandelt. Seiten, die JavaScript brauchen, um ihre Inhalte anzuzeigen, werden im Leitfaden JavaScript-Websites scrapen behandelt.
Starten Sie mit einer kostenlosen Testphase, ganz ohne Karte: Erstellen Sie ein Konto und probieren Sie den PopularCaptcha-Ablauf an einer Seite aus, die Ihnen gehört. Die aktuellen Tarife finden Sie auf der Preisseite.