Camoufox mit Residential Proxies: Python-Anleitung mit Code

So betreiben Sie Camoufox, den in C++ gepatchten Firefox, hinter Residential Proxies: aktuelle Python-API, warum geoip eine Sticky Session braucht, eine Checkliste zur Fingerprint-Kohärenz und wann Patchright oder nodriver besser passt.

Camoufox with Residential Proxies: A Code-First Python Guide
In diesem Artikel

Um Camoufox mit Residential Proxies zu betreiben, übergeben Sie ein proxy-Dict im Playwright-Format an Camoufox() oder AsyncCamoufox(), setzen geoip=True, damit Zeitzone, Locale und Geolocation aus der Exit-IP abgeleitet werden, und verwenden eine Sticky Session, damit die IP, die Camoufox beim Start ermittelt hat, auch die ist, über die Sie surfen. Camoufox ist ein Firefox-Build, dessen Fingerprint-Patches in C++ stecken, nicht in JavaScript-Overrides. Ihre Aufgabe ist es also vor allem, Netzwerkidentität und Browseridentität konsistent zu halten. Der Rest dieses Leitfadens zeigt den Code, die Prüfungen dahinter und die Fälle, in denen Camoufox das falsche Werkzeug ist.

Was Camoufox ist und warum es zu Residential Proxies passt

Camoufox ist ein Open-Source-Fork von Firefox, gebaut für Scraping und KI-Agenten. Gesteuert wird er über die normale Playwright-API aus Python (das Paket camoufox auf PyPI) oder, seit September 2026, über einen offiziellen npm-Launcher. Laut README werden Daten „auf Ebene der C++-Implementierung abgefangen“. Eine Seite, die navigator, Bildschirm, WebGL oder Schriften untersucht, sieht also native Getter und keine gepatchten JavaScript-Funktionen.

Das ist ein anderer Ansatz als bei den Chromium-Werkzeugen. Patchright ist ein gepatchter Playwright-Treiber, der Chrome selbst unverändert lässt und verhindert, dass der Treiber über das Chrome DevTools Protocol (CDP) erkennbare Dinge tut, etwa Runtime.enable aufzurufen. nodriver verzichtet ganz auf WebDriver und spricht CDP mit einem unveränderten Chrome. Beide lassen ein automatisiertes Chrome wie Chrome aussehen. Camoufox lässt einen automatisierten Firefox wie eine Vielzahl unterschiedlicher Firefox-Installationen aussehen, und Playwright steuert ihn über Juggler, das eigene Automatisierungsprotokoll von Firefox, nicht über CDP. Die Camoufox-Patches geben Juggler eine isolierte Kopie der Seite, sodass die Playwright-Helfer (zum Beispiel window.__playwright__binding__) für Seitenskripte nie sichtbar sind.

Residential Proxies kommen ins Spiel, weil Camoufox die IP nicht verbergen kann. Jeder Start erzeugt eine neue Geräteidentität: Betriebssystem, Bildschirm, GPU, Schriften, Stimmen, Sprache. Wenn diese Identität „Heim-Desktop in Deutschland“ sagt, die Verbindung aber aus einem Rechenzentrumsbereich in Virginia kommt, ist die ganze Fingerprint-Arbeit wertlos. Das README sagt, Camoufox sei „für den Einsatz mit rotierenden Proxies gedacht (vorzugsweise Residential-IPs)“.

Camoufox installieren und den Browser herunterladen

Die Installation hat zwei Schritte: erst das Python-Paket, dann das gepatchte Firefox-Binary, das separat heruntergeladen wird.

pip install -U "camoufox[geoip]"
python -m camoufox fetch

Das Extra [geoip] bringt den geoip2-Reader mit, und Camoufox lädt dazu einen Geolocation-Datensatz herunter. Die Installationsdokumentation nennt es optional, aber „dringend empfohlen, wenn Sie Proxies verwenden“, und geoip=True läuft ohne es nicht. Zwei Versionshinweise, die beim Pinnen von Abhängigkeiten wichtig sind:

  • Stand Anfang Oktober 2026 ist das aktuelle stabile Release auf PyPI camoufox 0.5.6 (6. September 2026), gebaut auf Firefox 152. Builds auf Basis von Firefox 156 wurden Ende September als GitHub-Prereleases und 0.5.7b*-Betas veröffentlicht. Bleiben Sie bei Stable, sofern Sie keinen bestimmten Fix brauchen.
  • Das Paket benötigt Python 3.10 oder neuer, und seine pyproject.toml pinnt playwright<1.63, weil der Server-Modus ein privates Playwright-Modul importiert. Wenn etwas anderes in Ihrem Projekt das neueste Playwright verlangt, rechnen Sie mit einem Konflikt.

Die Python-API: sync, async und die wichtigen Optionen

Camoufox kapselt den Firefox-Launcher von Playwright. Sobald Sie das Browser-Objekt haben, funktioniert jeder Playwright-Aufruf wie gewohnt. Die synchronen und asynchronen Einstiegspunkte sind Context Manager:

from camoufox.sync_api import Camoufox

with Camoufox(headless=True) as browser:
    page = browser.new_page()
    page.goto("https://example.com")
    print(page.title())
import asyncio
from camoufox.async_api import AsyncCamoufox

async def main():
    async with AsyncCamoufox(headless=True) as browser:
        page = await browser.new_page()
        await page.goto("https://example.com")
        print(await page.title())

asyncio.run(main())

Für die Arbeit über Proxies sind diese Keyword-Argumente am wichtigsten. Die Beschreibungen stammen aus der Nutzungsdokumentation und dem Docstring von launch_options() im pythonlib-Quellcode:

  • proxy: ein Playwright-Proxy-Dict (server, username, password). Bei geoip=True schickt Camoufox beim Start außerdem eine Anfrage über diesen Proxy, um die Exit-IP zu ermitteln.
  • geoip: True, um die Exit-IP automatisch nachzuschlagen, oder ein IP-String. Aus dieser IP setzt Camoufox Breiten- und Längengrad, Zeitzone, Land, Locale und die WebRTC-IP. geoip_db wählt die Datenbank. Am 30. September 2026 hat der main-Branch „GeoIP AIO“ zum Standard gemacht und GeoLite2 als veraltet markiert. Prüfen Sie also, welche Ihre installierte Version nutzt.
  • locale: eine explizite Locale wie "en-US", ein Ländercode wie "US" (Camoufox wählt dann eine Sprache gemäß der Sprecherverteilung des Landes) oder eine Liste. Der erste Eintrag steuert die Intl-API.
  • humanize: True oder ein Float mit der maximalen Dauer einer Cursorbewegung in Sekunden. Stable 0.5.6 zeichnet noch Bézier-Kurven. Der main-Branch ist am 24. September 2026 dazu übergegangen, aufgezeichnete menschliche Mauspfade aus dem Cursory-Datensatz abzuspielen. Das bekommen Sie also nur mit den Firefox-156-Prereleases oder späteren Builds.
  • headless: standardmäßig False. True nutzt den Headless-Modus von Firefox, den Camoufox so patcht, dass er wie ein normales Fenster aussieht. "virtual" startet den Browser mit sichtbarem Fenster in einem virtuellen Xvfb-Display. Diese Option gibt es nur unter Linux, und das Paket xvfb muss installiert sein.
  • os: beschränkt die erzeugte Identität auf "windows", "macos", "linux" oder eine Liste davon.
  • block_webrtc, block_images, block_webgl: Schalter. Laut den Warnungen des Projekts selbst wurde berichtet, dass das Blockieren von WebGL oder Bildern bei großen WAFs zur Erkennung führt.

Die Seite zum virtuellen Display begründet "virtual" so: Camoufox patcht zwar den Headless-Modus, aber „der Headless-Modus könnte in Zukunft dennoch erkennbar sein“. Auf einem Linux-Server kostet Xvfb etwas zusätzlichen Speicher und beseitigt eine ganze Klasse von Headless-Merkmalen. Das lohnt sich meistens.

Ein funktionierendes Beispiel: länderspezifisch, sticky, kohärent

Das folgende Beispiel öffnet eine mehrstufige Sitzung über das ProxyHat-Gateway mit deutschem Exit, lässt Camoufox Zeitzone und Locale aus der Exit-IP ableiten und prüft, ob die Identität stimmig ist, bevor echte Arbeit beginnt. Land und Session stehen beide im Proxy-Benutzernamen.

import asyncio
import secrets
from camoufox.async_api import AsyncCamoufox

PROXY_USER = "USERNAME"
PROXY_PASS = "PASSWORD"


def proxy_for(country: str, session_id: str) -> dict:
    # Sticky Session + Länder-Targeting, beides im Benutzernamen kodiert
    return {
        "server": "http://gate.proxyhat.com:8080",
        "username": f"{PROXY_USER}-country-{country}-sid-{session_id}-ttl-10m",
        "password": PROXY_PASS,
    }


COHERENCE_JS = """() => ({
    tz: Intl.DateTimeFormat().resolvedOptions().timeZone,
    offsetMin: new Date().getTimezoneOffset(),
    lang: navigator.language,
    langs: navigator.languages,
    platform: navigator.platform,
})"""


async def run(country: str = "DE") -> None:
    session_id = secrets.token_hex(4)  # eine IP für den gesamten Ablauf
    async with AsyncCamoufox(
        proxy=proxy_for(country, session_id),
        geoip=True,               # Zeitzone/Locale/Geo/WebRTC aus der Exit-IP
        humanize=True,            # menschenähnliche Cursorbewegung
        headless="virtual",       # Linux + Xvfb; anderswo headless=True verwenden
        os=["windows", "macos"],
    ) as browser:
        page = await browser.new_page()

        # 1. Was sieht die Außenwelt?
        await page.goto("https://ipinfo.io/json")
        exit_info = await page.evaluate("() => JSON.parse(document.body.innerText)")

        # 2. Was behauptet der Browser?
        claimed = await page.evaluate(COHERENCE_JS)

        print("exit:", exit_info.get("ip"), exit_info.get("country"), exit_info.get("timezone"))
        print("browser:", claimed)
        if exit_info.get("timezone") != claimed["tz"]:
            raise RuntimeError("timezone does not match exit IP; abort before real traffic")

        # 3. Echte mehrstufige Arbeit über dieselbe IP
        await page.goto("https://example.com/", wait_until="domcontentloaded")
        # ... einloggen, paginieren, absenden, alles mit derselben session_id


asyncio.run(run("DE"))

Warum es so aufgebaut ist:

  • Mit geoip=True ist die Sticky Session unverzichtbar. Der Lookup passiert einmal, beim Start des Browsers: Camoufox' public_ip() schickt über Ihren Proxy eine Anfrage an einen öffentlichen IP-Echo-Dienst und baut die Identität aus der Antwort. Enthält der Benutzername keine Session, kann ein rotierendes Gateway der nächsten Verbindung eine andere Residential-IP geben. In einem Land mit nur einer Zeitzone fällt das selten auf. In den USA, Russland, Brasilien oder Australien kann die zweite IP mehrere Zeitzonen von der entfernt sein, die der Browser meldet. Eine Sticky Session sorgt dafür, dass Lookup-IP und Browsing-IP identisch sind (mehr dazu in unserem Leitfaden Sticky vs. rotierende Sessions).
  • Eine Session-ID pro Browser, nicht pro Seite. Rotieren Sie, indem Sie den Browser schließen und einen neuen mit neuer session_id starten. So bekommen Sie neue IP und neuen Fingerprint gleichzeitig, und genau so sieht ein anderer Besucher aus.
  • Die ipinfo-Prüfung ist ein günstiger Stolperdraht. Jeder IP-Geolocation-Endpunkt eignet sich. Es geht darum, vor den ersten Anfragen ans Ziel zu vergleichen, was das Netzwerk sagt und was der Browser sagt. Geolocation-Datenbanken sind sich an den Rändern uneinig, also werten Sie eine Abweichung als Anlass für einen Neustart, nicht als Beweis, dass etwas kaputt ist.
  • Den HTTP-Endpunkt bevorzugen. Die Netzwerkdokumentation von Playwright dokumentiert Benutzername/Passwort nur für HTTP(S)-Proxies. SOCKS5 (gate.proxyhat.com:1080) wird als Proxy-Typ unterstützt, aber authentifiziertes SOCKS über einen Browser ist genau die Stelle, an der Setups gern scheitern. HTTP vs. SOCKS5 behandelt die weiteren Abwägungen.

Checkliste zur Fingerprint-Kohärenz

Kohärenz heißt: Land der Exit-IP, Zeitzone, Sprache, WebRTC-Adresse, Betriebssystem, Schriften und GPU beschreiben alle eine plausible Maschine an einem Ort. Camoufox kümmert sich um die Browserseite; die meisten Fehler entstehen durch Einstellungen, die Sie überschreiben. Prüfen Sie Folgendes, bevor Sie hochskalieren:

  1. Land der Exit-IP ↔ Zeitzone. Prüfen Sie sowohl Intl.DateTimeFormat().resolvedOptions().timeZone als auch Date.getTimezoneOffset(). Erkennungsskripte vergleichen die per Geolocation ermittelte Zeitzone der IP mit der des Browsers, und eine Abweichung ist eines der ältesten Proxy-Merkmale. Mit geoip=True auf einer Sticky Session stimmen sie per Konstruktion überein.
  2. Land der Exit-IP ↔ Sprache. navigator.language, navigator.languages und der Accept-Language-Header sollten zum Land passen. Camoufox hält Header und navigator für Sie synchron. Wenn Sie locale= übergeben, dann eine vollständige Locale mit Region ("de-DE", nicht "de"): Das Projekt warnt, dass eine fehlende Region für Sie erzeugt wird und „Verdacht erregen kann, wenn Ihre IP nicht zur Region Ihrer Locale passt“.
  3. WebRTC ↔ Exit-IP. WebRTC kann Ihre echte lokale oder öffentliche Adresse offenlegen und den Proxy umgehen. Bei aktiviertem geoip fälscht Camoufox die WebRTC-IPv4 auf Protokollebene auf die Exit-IP und schaltet IPv6-DNS ab. Lassen Sie WebRTC aktiviert und gefälscht statt blockiert, denn ein Desktop-Firefox ganz ohne WebRTC ist ungewöhnlich.
  4. Geolocation-API ↔ IP. Camoufox füllt Breiten- und Längengrad aus dem GeoIP-Lookup und setzt die Berechtigungs-Pref, sodass navigator.permissions.query({name: "geolocation"}) konsistent zur ausgegebenen Position „granted“ meldet. Setzen Sie die Geolocation nicht von Hand in config. Die Bibliothek warnt, das „kann zur Erkennung führen, wenn Ihre Ziel-Geolocation nicht zu Ihrer IP passt“.
  5. Betriebssystem ↔ Schriften ↔ GPU. Der Generator zieht aus einem statistischen Modell echten Traffics, und eine Kohärenzprüfung verwirft unmögliche Kombinationen, etwa einen Windows-User-Agent mit Apple-M1-GPU. Vermeiden Sie custom_fonts_only=True und übergeben Sie nur webgl_config-Paare, die das Modell auf diesem Betriebssystem kennt (alles andere löst ValueError aus).
  6. User-Agent: Finger weg. User-Agent oder navigator-Felder manuell zu setzen, ist der schnellste Weg, Netzwerk und JavaScript in Widerspruch zu bringen. Die Bibliothek warnt vor beidem.
  7. IP-Typ ↔ behauptetes Gerät. Ein erzeugter Consumer-Desktop auf dem ASN eines Hosting-Anbieters ist ein inkohärentes Paar, egal wie gut der Fingerprint ist. Genau hier rechtfertigen Residential- (oder ISP-)IPs ihren Preis. Unser Erklärartikel zu Browser-Fingerprinting zeigt, wie diese Signale serverseitig kombiniert werden.
  8. Eine Identität pro Session. Cookies, IP und Fingerprint sollten sich alle gemeinsam ändern oder gar nicht. Ein wiederkehrendes Cookie auf einer neuen IP mit neuer GPU wirkt weniger menschlich als eine stabile Session oder eine saubere neue.

Camoufox vs. Patchright vs. nodriver: was wählen?

Entscheiden Sie zuerst nach Engine. Sieht Ihr Ziel überwiegend Chrome-Traffic oder prüft es auf V8-Verhalten, nehmen Sie ein Chromium-Werkzeug. Brauchen Sie tiefe Fingerprint-Rotation, ohne JavaScript-Patches zu schreiben, und ist Firefox-Traffic akzeptabel, nehmen Sie Camoufox. Die Tabelle fasst die Abwägungen Stand Oktober 2026 zusammen.

CamoufoxPatchrightnodriver
EngineGepatchter Firefox (Gecko + SpiderMonkey)Chromium / Chrome (ungepatchter Browser)Ihr installiertes Chrome, Chromium, Edge oder Brave
SteuerprotokollJuggler (gepatcht, von der Seite isoliert)CDP, wobei Runtime.enable über isolierte Worlds vermieden wirdCDP direkt, kein WebDriver
APIPlaywright (Python, JS/TS)Drop-in-Ersatz für Playwright (Python, Node, Community-.NET)Eigene asynchrone Python-API
Herkunft des TLS-FingerprintsFirefox' eigener NSS-Stack, also ein Firefox-ClientHelloBoringSSL des echten Chrome, besonders mit channel="chrome"BoringSSL des echten Chrome
Fingerprint-RotationEingebaut, pro Start auf C++-Ebene erzeugtKeine. Empfiehlt echtes Chrome ohne InjectionKeine eingebaut
Wartung (Okt. 2026)Wieder aktiv. Stable 0.5.6 im Sep. 2026, aber zwischen März 2025 und Januar 2026 keine stabilen ReleasesFolgt Playwright. Treiber v1.63.0 im Sep. 2026 veröffentlichtLetztes PyPI-Release 0.50.3, Mai 2026
Typische SchwachstellenFirefox-spezifische Prüfung, Engine-Checks, die nur Chrome besteht, Fingerprint-Inkonsistenzen, die Anbieter finden und in ihre Checks aufnehmenConsole-API deaktiviert, nur Chromium, generische Headless- und Verhaltenssignale greifen weiterhinAuswertung in der Main World ist beobachtbar, kein Fingerprint-Management, kleinere API als Playwright

Die TLS-Zeile ist wichtiger, als sie aussieht. Alle drei nutzen den Netzwerk-Stack eines echten Browsers, keiner hat also die Diskrepanz, die entsteht, wenn Pythons requests behauptet, Chrome zu sein. Camoufox präsentiert aber immer einen Firefox-Handshake. Erwartet das Modell einer Website für den Großteil ihres Traffics Chrome-typisches TLS, lesen Sie in unserem Erklärartikel zu TLS-Fingerprinting, wie JA3/JA4 für diese Art von Profiling genutzt werden.

Ehrliche Grenzen

Camoufox kann eine Sache gut, nämlich eine kohärente, rotierende Firefox-Identität ohne JavaScript-Patching, und das hat echte Kosten.

Firefox ist nur ein kleiner Teil des Traffics

StatCounter beziffert den Anteil von Firefox an der weltweiten Desktop-Nutzung im September 2026 auf etwa 6,1 %, gegenüber rund 65 % für Chrome. Eine kleine Population ist leichter zu modellieren, und jede Anomalie darin fällt stärker auf. Manche Websites fordern Nicht-Chromium-Browser schneller heraus. Ob Ihr Ziel dazugehört, wissen Sie erst, wenn Sie es mit Ihrem eigenen Traffic testen.

Es kann Chrome nicht imitieren

Das README sagt es direkt: Camoufox „unterstützt das Injizieren von Chromium-Fingerprints nicht vollständig“, und einige WAFs „testen auf Verhalten der SpiderMonkey-Engine, das sich unmöglich fälschen lässt“. Besteht die Website auf Chrome, bringt Sie keine Camoufox-Konfiguration ans Ziel.

Die Wartung war ungleichmäßig

Die Release-Historie zeigt die Lücke. Der letzte stabile Build vor der Pause war v135.0.1-beta.24 vom 15. März 2025. Der ursprüngliche Autor pausierte die Arbeit, und abgesehen von gelegentlichen Community-Commits erschien bis zu einer Firefox-146-Beta im Januar 2026 nichts. Das README nannte dann Clover Labs als offiziellen Maintainer. Seitdem geht es schnell voran: ein Firefox-150-Build im Mai, stabile Firefox-152-Builds ab Juli, ein offizieller TypeScript-Launcher im September und Firefox-156-Prereleases zum Monatsende. Das README trägt weiterhin die Warnung „This project is under development. It may not be suitable for stable production use“. Pinnen Sie Versionen und testen Sie ein Upgrade, bevor Sie es ausrollen.

Fingerprints sind ein bewegliches Ziel

Das Projekt sagt offen, dass Anti-Bot-Anbieter „Camoufox immer wieder testen, um auch nur eine einzige Inkonsistenz zu finden“, und dann einen Check dafür einbauen. Der menschenähnliche Cursor „kann bei ausreichend ausgefeilter Analyse dennoch erkannt werden“. Spoofing auf C++-Ebene beseitigt eine ganze Kategorie von Merkmalen, macht Sie aber nicht dauerhaft unerkennbar.

Ressourcenbedarf

Laut Projekt läuft sein entschlackter Build mit rund 200 MB und braucht weniger Speicher als ein normaler Firefox. Das ist die Angabe des Projekts, nicht unsere, und Ihre Seiten kommen noch hinzu. Es bleibt ein vollständiger Browser pro Identität. Planen Sie einen Browser pro gleichzeitiger Session statt vieler Contexts mit gemeinsamem Fingerprint, und nutzen Sie für Endpunkte ohne JavaScript schlichte HTTP-Clients.

Was Camoufox nicht löst

  • IP-Reputation. Eine markierte Residential-IP bleibt markiert. Testen Sie Exits vor dem Einsatz, zum Beispiel mit unserem kostenlosen Proxy-Checker.
  • Rate Limits und Verhalten. Hunderte identische Pfade pro Minute wirken automatisiert, egal wie der Fingerprint aussieht.
  • CAPTCHAs, Logins und Zugriffsregeln. Camoufox gibt Ihnen keine Erlaubnis, irgendetwas zu sammeln. Respektieren Sie robots.txt und die Nutzungsbedingungen der Website, halten Sie sich von Daten hinter Authentifizierung fern, zu der Sie nicht berechtigt sind, und behandeln Sie personenbezogene Daten als DSGVO-/CCPA-relevant, auch wenn sie öffentlich sichtbar sind.

Ein vernünftiger Rollout

Beginnen Sie mit einem Land und einer Sticky Session. Protokollieren Sie die Ausgabe der Kohärenzprüfung bei jedem Start und vergleichen Sie die Blockraten mit einer Baseline von Patchright auf demselben Ziel, bevor Sie sich auf eine Engine festlegen. Gewinnt Camoufox, skalieren Sie mit zusätzlichen Browsern und frischen Session-IDs, nicht mit einem Browser für mehrere Sessions. Verliert es auf einer Website, die klar Chrome bevorzugt, zeigt Ihnen die Tabelle oben, wohin es als Nächstes geht. Das Residential-Gateway funktioniert mit allen drei Werkzeugen gleich. Ländercodes und Tarifoptionen finden Sie auf den Seiten Standorte und Residential Proxies.

Häufig gestellte Fragen

Wie nutze ich einen Proxy mit Camoufox?

Übergeben Sie ein Dict im Playwright-Format an Camoufox() oder AsyncCamoufox(): proxy={'server': 'http://host:port', 'username': '...', 'password': '...'}. Ergänzen Sie geoip=True (erfordert pip install "camoufox[geoip]"), damit Zeitzone, Locale, Geolocation und WebRTC-IP aus der Exit-IP des Proxys abgeleitet werden.

Warum braucht Camoufox mit Proxy geoip=True?

Ohne diese Option spiegeln Zeitzone, Sprache und Geolocation des Browsers Standardwerte statt der Exit-IP wider, und eine Abweichung zwischen IP-Standort und Browser-Zeitzone ist ein klassisches Proxy-Merkmal. Camoufox gibt sogar eine Warnung aus, wenn ein Proxy ohne geoip verwendet wird. Der Lookup läuft einmal beim Start über den Proxy, kombinieren Sie ihn also mit einer Sticky Session.

Wird Camoufox 2026 noch gepflegt?

Ja, aber mit einer Lücke. Zwischen März 2025 und Januar 2026 erschienen keine stabilen Releases. Seitdem, mit Clover Labs als offiziellem Maintainer, wurden Builds auf Basis von Firefox 150 und 152, ein offizieller npm-Launcher und bis Ende September 2026 Firefox-156-Prereleases veröffentlicht. Das README kennzeichnet das Projekt weiterhin als in Entwicklung.

Camoufox oder Patchright: Was ist schwerer zu erkennen?

Keines von beiden generell. Patchright nutzt echtes Chrome und vermeidet CDP-Lecks, fügt sich also in die dominierende Chrome-Population ein und besteht Engine-Checks, die Firefox nicht bestehen kann. Camoufox rotiert vollständige Fingerprints auf C++-Ebene ohne JavaScript-Patches, sieht aber immer wie Firefox aus, also wie etwa 6 % des Desktop-Traffics. Testen Sie beide gegen Ihr tatsächliches Ziel.

Läuft Camoufox headless auf einem Linux-Server?

Ja. headless=True nutzt den Headless-Modus von Firefox, den Camoufox so patcht, dass er wie ein normales Fenster aussieht, und headless="virtual" startet den Browser mit sichtbarem Fenster in einem virtuellen Xvfb-Display. Die virtuelle Option gibt es nur unter Linux und sie erfordert das Paket xvfb; die Dokumentation empfiehlt sie, weil der Headless-Modus erkennbar werden könnte.

Bereit loszulegen?

Residential-, ISP- und Mobile-Proxys in über 195 Ländern. Erstelle ein kostenloses Konto.

Kostenloses Konto erstellen
← Zurück zum Blog