Geonode logo
Geonode Team

Geonode Team

Aktualisiert: 7. Oktober 2026

Veröffentlicht: 02.09.2026

Cloudscraper in Python: Eine umfassende Anleitung

Cloudscraper ist eine Python-Bibliothek, mit der sich die Zwischenseite von Cloudflare umgehen lässt. Sie war wirklich effektiv, wird vielfach empfohlen und es gab seit 2023 keine funktionsfähige Version mehr. Diese Lücke ist wichtiger als jede Gebrauchsanweisung, da sich die Erkennung durch Cloudflare in den vergangenen Jahren erheblich verändert hat und das README der Bibliothek selbst ein Bedrohungsmodell beschreibt, das nicht mehr existiert. Dieser Artikel behandelt, was die Bibliothek leistet, warum der Ansatz nicht mehr funktioniert und was stattdessen zu tun ist.

Wir sind Geonode und verkaufen Proxys – ein Produkt, das üblicherweise zusammen mit einer Bibliothek wie dieser empfohlen wird. Um ehrlich zu sein: Wir werden keine Anleitung zum Umgehen der Sperre verfassen, zumal das Tool in diesem speziellen Fall ohnehin veraltet ist. Wir haben das Paket im September 2026 überprüft: Version 1.2.71 auf PyPI, hochgeladen im April 2023, wobei das Quell-Repository zuletzt im Juni 2025 aktualisiert wurde und diese Commits eher administrativer als funktionaler Natur waren. Inzwischen stützt sich die Bot-Erkennung von Cloudflare auf maschinelles Lernen anhand von Milliarden von Anfragen, JavaScript-basierte Headless-Erkennung und die Analyse der Header-Reihenfolge. Eine auf „requests“ basierende Bibliothek, die ein JavaScript-Problem löst, berücksichtigt nichts davon. Der nützliche Teil dieses Artikels sind die letzten drei Abschnitte.

Wofür Cloudscraper entwickelt wurde

Die Beschreibung der Bibliothek selbst macht deutlich, worauf sie abzielt, und es ist aufschlussreich, sie sich jetzt noch einmal durchzulesen.

Cloudscraper beschreibt sich selbst als „ein einfaches Python-Modul zur Umgehung der Anti-Bot-Seite von Cloudflare (auch bekannt als ‚I’m Under Attack Mode‘ oder IUAM), implementiert mit Requests“. Es wird darauf hingewiesen, dass „die Anti-Bot-Seite von Cloudflare derzeit lediglich prüft, ob der Client JavaScript unterstützt, auch wenn in Zukunft möglicherweise weitere Techniken hinzukommen könnten“.

Der Mechanismus, den es umging, ist das klassische Interstitial:

Checking your browser before accessing website.com.
This process is automatic. Your browser will redirect to your requested content shortly.
Please allow up to 5 seconds...

Der Ansatz der Bibliothek bestand darin, „eine JavaScript-Engine bzw. einen Interpreter zur Lösung von JavaScript-Herausforderungen“ zu verwenden, was „es dem Skript ermöglicht, sich problemlos als normaler Webbrowser auszugeben, ohne Cloudflares JavaScript explizit zu entschleiern und zu analysieren“. In der Dokumentation wird darauf hingewiesen, dass ein Skript „beim ersten Besuch einer beliebigen Website, auf der Cloudflare-Anti-Bot-Maßnahmen aktiviert sind, etwa 5 Sekunden lang in den Ruhezustand wechselt“, danach jedoch keine Verzögerung mehr auftritt.

Für das damals bestehende Problem war dies ein sinnvolles Design. Die Herausforderung bestand in einem JavaScript-Rätsel; die Bibliothek führte eine JavaScript-Engine aus und löste es.

Die README-Datei enthält zudem eine Zusage, die das Projekt zeitlich genau einordnet: „Cloudflare ändert seine Techniken regelmäßig, daher werde ich dieses Repo häufig aktualisieren.“

Der Wartungsstatus, überprüft

Fakten statt Eindrücke, verifiziert im September 2026.

Die aktuellste PyPI-Version ist 1.2.71, hochgeladen am 25. April 2023. Das entspricht einer Lücke von über drei Jahren gegenüber einem Ziel, das der Autor als periodisch wechselnd beschrieben hat.

Das GitHub-Repository wurde zuletzt im Juni 2025 aktualisiert, und die jüngsten Commits tragen die Titel „Fix owner“, „re-add gitignore“ und „Correct the owner details“ – also eher Verwaltungsaufgaben als Aktualisierungen der Erkennungslogik.

Es ist nicht archiviert und weist etwa 36 offene Issues auf.

Nichts davon ist als Kritik am Autor zu verstehen, der ein nützliches Tool geschrieben und es unter einer MIT-Lizenz zur Verfügung gestellt hat. Es ist lediglich der aktuelle Zustand des Pakets, und es ist die wichtigste Information für jeden, der beabsichtigt, darauf zurückzugreifen. Eine Bibliothek, deren gesamter Mehrwert darin besteht, mit einem Gegner Schritt zu halten, ist eine Bibliothek, bei der das Veröffentlichungsdatum die Spezifikation ist.

Wenn Sie in einem Artikel eine Empfehlung für „cloudscraper“ finden, überprüfen Sie das Datum des Artikels. Ein Großteil der kursierenden Ratschläge war zum Zeitpunkt der Veröffentlichung zutreffend und wurde seitdem nicht mehr überarbeitet.

So funktioniert die Erkennung durch Cloudflare derzeit

Der Grund, warum dieser Ansatz nicht mehr funktioniert, geht aus der Dokumentation von Cloudflare selbst hervor.

Der Bot-Score von Cloudflare reicht von 1 bis 99, wobei 1 bedeutet, dass „Cloudflare ziemlich sicher ist, dass die Anfrage automatisiert war“, und 99 darauf hindeutet, dass es sich wahrscheinlich um einen Menschen handelt. Er wird von mehreren zusammenarbeitenden Engines ermittelt.

Maschinelles Lernen ist für die meisten Erkennungen verantwortlich. Cloudflare beschreibt eine „überwachte Methode des maschinellen Lernens“, die täglich Milliarden von Anfragen analysiert und dabei „Anfrageeigenschaften wie Header und Browsersignale“ untersucht, um die Wahrscheinlichkeit vorherzusagen, dass es sich bei einem Client um einen Menschen handelt.

Heuristiken gleichen bekannte Signaturen ab und weisen bei Erkennungen mit hoher Zuverlässigkeit einen Wert von 1 zu.

JavaScript-Erkennungen identifizieren Headless-Browser durch eine „schlanke, unsichtbare clientseitige JavaScript-Einbindung“, die laut Cloudflare „keine personenbezogenen Daten erfasst“.

Erkennungs-IDs sind statische Regeln, die vorhersehbares Verhalten identifizieren. Das Beispiel von Cloudflare ist aufschlussreich: Sie können erkennen, wenn „ein Client Header in einer anderen Reihenfolge sendet, als es der von ihm angegebene Browser tun würde“.

Letzteres ist der springende Punkt. Die Reihenfolge der Header wird nicht von einer auf dem „requests“ basierenden Bibliothek gesteuert und ändert sich auch nicht, wenn man eine JavaScript-Challenge löst. Ebenso wenig ändert sich die TLS-Handshake-Signatur, die eine Eigenschaft Ihres Python-HTTP-Stacks ist und nicht von dem, was Sie senden.

Das Modell hat sich also umgekehrt. Im Jahr 2019 lautete die Frage: „Kann dieser Client JavaScript ausführen?“, und eine Bibliothek mit einer JavaScript-Engine beantwortete diese Frage mit Ja. Jetzt lautet die Frage: „Stimmt alles an diesem Client mit dem überein, was er vorgibt zu sein?“, und ein Python-Prozess, der vorgibt, Chrome zu sein, scheitert an mehreren unabhängigen Signalen gleichzeitig – von denen keines von einem Challenge-Löser beeinflusst wird.

Cloudflare hat zudem bewusst adversarische Antworten hinzugefügt. Sein „AI Labyrinth“ liefert Crawlern auf unbestimmte Zeit kohärente, generierte Inhalte, anstatt sie zu blockieren. Das bedeutet, dass ein Scraper scheinbar erfolgreich ist, obwohl er nichts von Wert sammelt. Wir haben dieses Muster in Honeypot-Fallen behandelt.

Warum Proxys dieses Problem nicht lösen

Der Teil, in dem wir gegen unser eigenes Produkt argumentieren – weil es der Wahrheit entspricht.

Sehen Sie sich die obige Erkennungsliste an und beachten Sie, was darin steht: Zusammensetzung und Reihenfolge der Header, Browsersignale, maschinell erlernte Merkmale von Anfragen, Eigenschaften der JavaScript-Ausführung. Die IP-Adresse taucht in Cloudflares eigener Beschreibung der Berechnung des Bot-Scores nirgendwo auf.

Die Reputation einer Adresse ist sicherlich ein Faktor bei der Gesamtentscheidung von Cloudflare, und eine schlechte Adresse wird Ihnen nicht helfen. Aber sie ist nur einer von vielen Faktoren, und sie ist nicht derjenige, der einen Python-Client als automatisiert identifiziert. Ein Residential-Proxy vor einer „requests“-Sitzung verschafft Ihnen eine saubere Adresse, die einem Client zugeordnet ist, der weiterhin genau so aussieht, wie er ist.

Die ehrliche Zusammenfassung: Wenn Sie markiert werden, weil Ihre Adresse zu einem gemeinsam genutzten Rechenzentrumsbereich mit schlechter Vorgeschichte gehört, helfen bessere Adressen. Wenn Sie markiert werden, weil Ihre Anfrage nicht wie der Browser aussieht, als der sie sich ausgibt, ändert keine Adresse daran etwas – und das sagen wir lieber, anstatt Ihnen dafür Bandbreite zu verkaufen.

Was man stattdessen tun sollte

Der wirklich nützliche Abschnitt, geordnet nach den Lösungen, die die meisten Probleme beheben.

Prüfen Sie, ob es eine offizielle API gibt. Ein großer Teil der hinter Cloudflare stehenden Websites veröffentlicht auch eine solche, gerade damit legitime Nutzer einen autorisierten Weg haben. Dies wird weitaus seltener geprüft, als es eigentlich sollte, da man instinktiv eher nach einer Umgehungsmöglichkeit sucht als nach der Dokumentation.

Prüfen Sie, ob es einen Datenfeed oder ein Partnerprogramm gibt. Ganze Branchen veröffentlichen Massendaten für nachgelagerte Nutzer. Fragen Sie nach.

Prüfen Sie, was ohne den geschützten Zugriffsweg verfügbar ist. Sitemaps, RSS-Feeds, in Seiten eingebettetes JSON-LD, öffentliche Datensätze, Archive. Oft stellt sich heraus, dass genau das, was Sie gesucht haben, irgendwo ungeschützt veröffentlicht ist.

Fragen Sie bei der Website nach. Eine E-Mail, in der Sie erklären, wer Sie sind, was Sie benötigen und in welchem Umfang, löst das Problem häufiger, als die Diskussion vermuten lässt. Der Einwand eines Website-Betreibers richtet sich in der Regel gegen unerklärliche Auslastung, nicht gegen Sie persönlich. Dies ist zudem der einzige Weg, der einen Zugang ermöglicht, der dauerhaft funktioniert.

Nutzen Sie einen lizenzierten Datenanbieter. Gängige Daten – Unternehmensinformationen, Produktkataloge, Marktdaten – werden von jemandem verkauft, und der Preis ist häufig niedriger als der technische Aufwand, der entsteht, wenn man den Kauf vermeiden will.

Überlegen Sie, ob Sie weniger benötigen. Bei vielen Datenerfassungen werden weit mehr Daten gesammelt, als für die jeweilige Aufgabe erforderlich sind. Eine kleinere, spezifischere Anfrage lässt sich leichter auf legitime Weise erfüllen und bei der Anfrage besser begründen.

Und wenn Sie einen legitimen automatisierten Client betreiben, geht der Trend zunehmend in Richtung Identifizierung statt Verschleierung. Die Branche bewegt sich in Richtung kryptografischer Agentenauthentifizierung, agentenspezifischer Zugriffsrichtlinien und in einigen Fällen kostenpflichtigen Zugangs für automatisierten Datenverkehr – eine Entwicklung, die wir in unserem Beitrag über DataDome beschrieben haben. Ein Agent zu sein, den eine Website identifizieren und nach eigenem Ermessen zulassen kann, ist der einzige Ansatz, der mit der Zeit immer zuverlässiger wird, anstatt an Zuverlässigkeit zu verlieren.

Wenn Sie bereits Code haben, der diese Funktion nutzt

Praktische Hinweise für die Situation, in der sich viele tatsächlich befinden: Eine funktionierende, auf Cloudscraper basierende Pipeline, die plötzlich Fehler verursacht.

Stellen Sie zunächst fest, was tatsächlich vor sich geht. „Es funktioniert nicht mehr“ deckt mehrere unterschiedliche Fehler mit unterschiedlichen Reaktionen ab. Geben Sie den Statuscode und den ersten Teil des Textkörpers aus, anstatt nur die Ausnahme abzufangen:

import cloudscraper

scraper = cloudscraper.create_scraper()
r = scraper.get(url)
print(r.status_code, r.headers.get("content-type"))
print(r.text[:300])

Ein 403 mit einer Cloudflare-Sperrseite bedeutet, dass Sie identifiziert wurden. Ein 200 mit einer Challenge-Seite bedeutet, dass die Challenge nicht gelöst wurde. Ein 200 mit plausiblen, aber irrelevanten Inhalten bedeutet, dass Sie sich möglicherweise in einem Tarpit befinden. Ein 503 mit einer Cloudflare-Interstitial-Seite bedeutet, dass die Challenge im alten Stil noch aktiv ist und etwas anderes in Ihrer Konfiguration falsch ist. Jeder Fall weist auf eine andere Ursache hin.

Prüfen Sie anschließend, ob sich die Website oder die Bibliothek geändert hat. Rufe dieselbe URL mit „requests“ und mit einem echten Browser auf. Wenn der Browser funktioniert und beide Python-Pfade auf identische Weise fehlschlagen, hat die Website ihren Schutz verschärft, und keine Konfiguration der Bibliothek wird helfen. Wenn „requests“ funktioniert, verursacht „cloudscraper“ eher ein Problem, anstatt eines zu lösen – was vorkommt und was es wert ist, überprüft zu werden, bevor du davon ausgehst, dass du es benötigst.

Fixieren Sie keine ältere Version in der Hoffnung, das ursprüngliche Verhalten wiederherzustellen. Der Fehler liegt auf der anderen Seite der Verbindung, nicht im Paket. Es gibt keine frühere Version, die eine Erkennungsmethode kennt, die erst nach ihrer Erstellung eingeführt wurde.

Entfernen Sie es, wenn es keine Funktion mehr erfüllt. Eine Abhängigkeit, die ein Problem gelöst hat, das nicht mehr auftritt, ist ein nicht mehr gepflegtes Paket in Ihrer Lieferkette, das keinen Nutzen mehr bringt. Websites wechseln zwischen den aggressiveren Modi von Cloudflare hin und her, und eine Pipeline, die während einer aggressiven Phase erstellt wurde, funktioniert möglicherweise jetzt auch ohne die Bibliothek einwandfrei. Testen Sie es.

Und betrachten Sie den Fehler als Information über das Projekt und nicht als einen Fehler, den es zu beheben gilt. Eine Erfassungspipeline, die eine nicht mehr gepflegte Bypass-Bibliothek benötigt, um zu funktionieren, weist ein strukturelles Problem auf, und die Zeit, die für die Wiederherstellung aufgewendet wird, ist Zeit, die nicht dafür genutzt wird, die API, den Feed oder die richtige Ansprechperson zu finden. Unserer Erfahrung nach ist die zweite Suche häufiger erfolgreich als die erste.

Wo Proxys wirklich hingehören

Der Vollständigkeit halber, da dies unser Geschäftsfeld ist und es echte Anwendungsfälle gibt.

Verteilung des Datenvolumens auf mehrere Adressen, wenn Sie Ihre Rate optimiert haben und eine einzelne Adresse den Engpass darstellt. Dies ist ein Durchsatzproblem, und genau dieses lösen Proxys.

Zugriff auf regionsspezifische Inhalte, bei denen es darauf ankommt, den Anschein zu erwecken, sich an einem bestimmten Ort zu befinden.

Umgang mit einem Netzwerk, das eine Website filtert – was eher ein Problem auf Ihrer Seite als auf der der Website ist.

Anzeigenüberprüfung und Markenüberwachung, um Ihre eigenen Ausgaben in den Regionen zu überprüfen, für die Sie bezahlt haben.

Keiner dieser Fälle ist eine Umgehung. In allen Fällen ist die Adresse tatsächlich die Variable, und in jedem Fall ist der sinnvolle Ausgangspunkt die Bandbreite im Rechenzentrum – bei uns ab 0,14 $/GB –, die nur dann auf 0,79 $/GB für Privathaushalte erhöht wird, wenn dies nachweislich erforderlich ist. Zahlen stammen von unserer Preisseite, Stand September 2026.

Was wir nicht tun werden, ist, einen Tarif unter dem Vorwand zu verkaufen, dass er ein Machine-Learning-Modell zur Überprüfung der Header-Reihenfolge umgeht. Das ist nicht die Aufgabe einer IP-Adresse.

Häufig gestellte Fragen

Funktioniert Cloudscraper noch?

Gegen den modernen Cloudflare-Schutz im Allgemeinen nicht. Die letzte PyPI-Veröffentlichung stammt aus dem April 2023, und die Bibliothek wurde für eine Zeit entwickelt, in der die Herausforderung hauptsächlich in einer JavaScript-Prüfung bestand. Die aktuelle Erkennung nutzt maschinelles Lernen anhand von Anfrage-Merkmalen, die Analyse der Header-Reihenfolge und JavaScript-basierte Headless-Erkennung – allesamt Aspekte, die von einem Challenge-Solver nicht berücksichtigt werden.

Wird „cloudscraper“ noch gepflegt?

Das Repository ist nicht archiviert, aber die letzte Veröffentlichung stammt aus dem April 2023, und die jüngsten Commits – aus dem Juni 2025 – sind eher administrativer als funktionaler Natur. Für eine Bibliothek, deren Wert vollständig davon abhängt, ein sich veränderndes Ziel zu verfolgen, entspricht das Veröffentlichungsdatum praktisch der Spezifikation.

Warum gibt Cloudscraper einen 403-Fehler zurück?

Weil Cloudflare den Client anhand von Signalen identifiziert hat, auf die die Bibliothek keinen Einfluss hat. Die Header-Reihenfolge, die Eigenschaften des TLS-Handshakes und maschinell erlernte Anfrage-Merkmale deuten alle auf einen Python-HTTP-Client hin, unabhängig davon, ob eine JavaScript-Challenge gelöst wurde.

Lässt sich „cloudscraper“ über einen Proxy zum Laufen bringen?

Nein, es sei denn, die Reputation Ihrer Adresse ist der konkrete Grund, warum Sie markiert wurden. Cloudflares eigene Beschreibung seines Bot-Scores umfasst maschinelles Lernen anhand von Anfrageeigenschaften, Heuristiken, JavaScript-Erkennungen und Regeln zur Header-Reihenfolge – von denen sich keine ändert, wenn sich Ihre Adresse ändert.

Was kann ich anstelle von Cloudscraper verwenden?

Suchen Sie nach einer offiziellen API, einem Partner-Datenfeed oder nach Daten, die an anderer Stelle ungeschützt veröffentlicht werden. Ziehen Sie dann in Betracht, die Website direkt zu fragen – dies führt häufiger zum Erfolg, als man erwartet, und sorgt für einen Zugriff, der dauerhaft funktioniert. Lizenzierte Datenanbieter sind oft günstiger als der technische Aufwand, den man aufwenden muss, um sie zu umgehen.

Ist das Umgehen von Cloudflare legal?

Verstöße gegen Nutzungsbedingungen sind in den meisten Rechtsordnungen eher vertraglicher als strafrechtlicher Natur, und die realistische Konsequenz ist eine Sperrung. Die Rechtmäßigkeit hängt von der Rechtsordnung, den betroffenen Daten und deren Verwendung ab. Eine Website, die Schutzmaßnahmen eingesetzt hat, hat damit eine Haltung bezogen, die unabhängig von der rechtlichen Analyse abgewogen werden sollte. Dies ist keine Rechtsberatung.

Warum erhalte ich eine 200-Antwort ohne nützlichen Inhalt?

Möglicherweise sind Sie auf einen „Tarpit“ gestoßen. Das AI Labyrinth von Cloudflare liefert Crawlern zusammenhängende, sachlich plausible, generierte Inhalte, die für die Website jedoch völlig irrelevant sind, anstatt sie zu blockieren. Alle Anfragen werden erfolgreich zurückgegeben, während Sie keine Daten erhalten – dies ist beabsichtigt.

Funktioniert die Verwendung eines Headless-Browsers besser?

Er erfasst mehr Signale als eine auf „requests“ basierende Bibliothek, da ein echter Browser echte TLS- und Header-Merkmale erzeugt. Er verursacht zudem weitaus höhere Kosten hinsichtlich Bandbreite und Rechenleistung, und die JavaScript-Erkennungsmechanismen von Cloudflare zielen speziell auf Headless-Browser ab. Es handelt sich eher um einen anderen Kompromiss als um eine Lösung, und die Frage nach den Bedingungen bleibt unverändert.

Fazit

Cloudscraper hat ein echtes Problem gut gelöst, doch das Problem, für dessen Lösung es entwickelt wurde, existiert in der ursprünglichen Form nicht mehr. Die letzte funktionsfähige Version stammt aus einer Zeit, in der auf der anderen Seite bereits mehrere Generationswechsel stattgefunden haben, und die README-Datei der Bibliothek verspricht häufige Updates, die seit über drei Jahren nicht mehr erfolgt sind.

Zu verstehen, warum das so ist, ist nützlicher, als einen Ersatz zu finden. Die alte Frage war, ob ein Client JavaScript ausführen kann, und eine Bibliothek mit einer JavaScript-Engine konnte diese Frage beantworten. Die aktuelle Frage lautet, ob alles an einem Client mit dem übereinstimmt, was er vorgibt zu sein – Header-Reihenfolge, TLS-Eigenschaften, Browsersignale, Verhalten –, und eine Python-HTTP-Sitzung, die vorgibt, Chrome zu sein, scheitert gleichzeitig an mehreren dieser Punkte, ganz gleich, welche Probleme sie löst.

Das ist auch der Grund, warum wir Ihnen keine Proxys als Lösung verkaufen werden. In Cloudflares eigener Beschreibung, wie der Bot-Score ermittelt wird, wird die Client-Adresse überhaupt nicht erwähnt. Bessere Adressen helfen bei Adressproblemen und bei nichts anderem.

Was funktioniert, ist unspektakulär und nachhaltig: Finden Sie die API, finden Sie den Feed, finden Sie die an anderer Stelle veröffentlichten Daten oder fragen Sie nach. Insbesondere der letzte Punkt hat eine viel höhere Erfolgsquote, als die Diskussion vermuten lässt, und es ist der einzige Weg, der nicht jedes Mal neu beschritten werden muss, wenn jemand ein Erkennungs-Update veröffentlicht.