---
title: "Cloudscraper in Python Schritt-für-Schritt-Anleitung"
slug: cloudscraper-guide
date: 2026-02-18T06:42:25+00:00
modified: 2026-04-27T09:05:03+00:00
permalink: https://brightdata.de/blog/web-data-de/cloudscraper-guide
type: blog
---

[ Blog ](https://brightdata.de/blog "Blog") / [Web Data](https://brightdata.de/blog/web-data-de)







 [Web Data](https://brightdata.de/blog/web-data-de)

# Cloudscraper in Python Schritt-für-Schritt-Anleitung

Lernen Sie, wie Sie Cloudscraper in Python verwenden, um den Schutz von Cloudflare zu umgehen, Fehler zu behandeln und alternative Lösungen für Anti-Bot-Systeme zu erkunden.

 12 min lesen





 [ ](https://brightdata.com/blog/authors/fortune-adekogbe)

 [Fortune Adekogbe

 ](https://brightdata.com/blog/authors/fortune-adekogbe)





 ![Cloudscraper in Python blog image](https://media.brightdata.de/2024/09/Cloudscraper-in-Python.svg)





In diesem Tutorial lernen Sie, wie Sie die Python-Bibliothek [Cloudscraper](https://pypi.org/project/cloudscraper/) verwenden, um die Bot-Erkennung von Cloudflare zu umgehen, häufige Fehler zu beheben und alternative Scraping-Lösungen für den robustesten Anti-Bot-Schutz zu erkunden.

## <a></a>Verwendung von Cloudscraper in Python

In diesem Tutorial versuchen Sie, Daten von einer durch Cloudflare geschützten Website mit und ohne Cloudscraper zu scrapen. Dazu verwenden Sie die Pakete Beautiful Soup und[Requests](/faqs/python-requests/what-is-python-requests). Wenn Sie mit diesen Paketen nicht vertraut sind, lesen Sie[diesen Python-Web-Scraping-Leitfaden](/blog/how-tos/web-scraping-with-python), um mehr zu erfahren.

Installieren Sie zunächst die erforderlichen Pakete, indem Sie den folgenden `pip` -Befehl ausführen:

```none
pip install tqdm==4.66.5 requests==2.32.3 beautifulsoup4==4.12.3

```

Um dieses Tutorial leichter verständlich zu machen, wurde der folgende Scraper erstellt, um Metadaten aus Nachrichtenartikeln zu extrahieren, die an einem bestimmten Tag auf der[Website von ChannelsTV](https://www.channelstv.com/) veröffentlicht wurden:

```none
import requests
from bs4 import BeautifulSoup
from datetime import datetime
from tqdm.auto import tqdm

def extract_article_data(article_source, headers):
    response = requests.get(article_source, headers=headers)
    if response.status_code != 200:
        return None

    soup = BeautifulSoup(response.content, 'html.parser')

    title = soup.find(class_="post-title display-3").text.strip()

    date = soup.find(class_="post-meta_time").text.strip()
    date_object = datetime.strptime(date, 'Updated %B %d, %Y').date()

    categories = [category.text.strip() for category in soup.find('nav', {"aria-label": "breadcrumb"}).find_all('li')]

    tags = [tag.text.strip() for tag in soup.find("div", class_="tags").find_all("a")]

    article_data = {
        'date': date_object,
        'title': title,
        'link': article_source,
        'tags': tags,
        'categories': categories
    }

    return article_data

def process_page(articles, headers):
    page_data = []
    for article in tqdm(articles):
        url = article.find('a', href=True).get('href')
        if "https://" not in url:
            continue
        article_data = extract_article_data(url, headers)
        if article_data:
            page_data.append(article_data)
    return page_data

def scrape_articles_per_day(base_url, headers):
    day_data = []
    page = 1

    while True:
        page_url = f"{base_url}/page/{page}"
        response = requests.get(page_url, headers=headers)

        if not response or response.status_code != 200:
            break

        soup = BeautifulSoup(response.content, 'html.parser')
        articles = soup.find_all('article')

        if not articles:
            break
        page_data = process_page(articles, headers)
        day_data.extend(page_data)

        page += 1

    return day_data

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
}

URL = "https://www.channelstv.com/2024/08/01/"

scraped_articles = scrape_articles_per_day(URL, headers)
print(f"{len(scraped_articles)} Artikel wurden gescrapt.")
print("Beispiele:")
print(scraped_articles[:2])

```

In diesem Code sind drei Funktionen definiert, um den Scraping-Prozess zu vereinfachen. Die erste Funktion namens `extract_article_data` lädt Daten aus einem einzelnen Artikel und extrahiert Metadaten wie Veröffentlichungsdatum, Titel, Tags und Kategorien in ein Python-Wörterbuch, das dann zurückgegeben wird. Die Schritte zum Laden und Extrahieren werden mithilfe der Python-Bibliotheken Requests und Beautiful Soup implementiert.

Die zweite Funktion, `process_page`, ruft den Link zu allen Artikeln auf einer bestimmten Seite ab und ruft die Funktion `extract_article_data` auf, um die darin enthaltenen Daten zu extrahieren und jedes Metadaten-Wörterbuch in einer Liste zu speichern, die dann zurückgegeben wird. Die letzte Funktion mit dem Namen `scrape_articles_per_day` verwendet eine `while-Schleife`, um die Seitenzahl zu erhöhen und die Artikeldaten auf jeder Seite zu scrapen, bis Sie zu einer Seite gelangen, die nicht existiert.

Als Nächstes definieren Sie die zu scrapend URL und geben das Datum für den Filter als 1. August 2024 sowie eine `Header-Variable` mit einem Beispiel-User-Agent an. Sie rufen die Funktion `scrape_articles_per_day` auf und übergeben die `URL-` und `Header-Variablen`. Anschließend geben Sie die Anzahl der gescrapend Artikel und die ersten beiden Ergebnisse aus.

Im Idealfall würde dieser Scraper funktionieren, aber das tut er nicht, da die Website ChannelsTV Cloudflare verwendet, um zu verhindern, dass Sie über die in den Funktionen`extract_article_data`und`scrape_articles_per_day`implementierten direkten Anfragen auf den Inhalt ihrer Webseiten zugreifen können.

Wenn Sie versuchen, dieses Skript auszuführen, sieht Ihre Ausgabe wie folgt aus:

```none
0 Artikel wurden gescrapt.
Beispiele:
[]

```

### <a></a>Cloudscraper integrieren

Als Sie zuvor versucht haben, bestimmte Metadaten aus einem Artikel zu scrapen, wurde dank des Schutzes durch Cloudflare nichts zurückgegeben. In diesem Abschnitt installieren und verwenden Sie Cloudscraper, um dieses Problem zu umgehen.

Installieren Sie zunächst die Cloudscraper-Bibliothek, indem Sie den folgenden `pip` -Befehl ausführen:

```none
pip install cloudscraper==1.2.71

```

Importieren Sie dann das Paket und definieren Sie eine `fetch_html_content` -Funktion wie folgt:

```none
import cloudscraper

def fetch_html_content(url, headers):
    try:
        scraper = cloudscraper.create_scraper()
        response = scraper.get(url, headers=headers)

        if response.status_code == 200:
            return response
        else:
            print(f"Failed to fetch URL: {url}. Status code: {response.status_code}")
            return None
    except Exception as e:
        print(f"An error occurred while fetching URL: {url}. Error: {str(e)}")
        return None

```

Diese Funktion nimmt die zu scrappende URL und die Request-Header als Eingabeparameter und gibt entweder ein Response-Objekt oder `None` zurück. Innerhalb der Funktion definieren Sie einen `try-except-Block`. Im `try-Block` erstellen Sie einen Scraper mit der Methode `cloudscraper.create_scraper`. Als Nächstes rufen Sie die Methode `scraper.get` auf und übergeben die Variablen `url` und `headers`. Wenn der Statuscode Ihrer Antwort `200` ist, geben Sie die Antwort zurück. Andernfalls geben Sie eine Fehlermeldung aus und geben `None` zurück. Wenn im `try-Block` ein Fehler auftritt, wird ebenfalls der `except-Block` ausgelöst, in dem eine entsprechende Meldung ausgegeben und `None` zurückgegeben wird.

Anschließend ersetzen Sie jeden Aufruf `von requests.get` in Ihrem Skript durch diese Funktion `fetch_html_content`. Führen Sie diese Ersetzung zunächst in Ihrer Funktion `extract_article_data` wie folgt durch:

```none
def extract_article_data(article_source, headers):
    response = fetch_html_content(article_source, headers)

```

Ersetzen Sie dann den Aufruf von `requests.get` in Ihrer Funktion `scrape_articles_per_day` wie folgt:

```none
def scrape_articles_per_day(base_url, headers):
    day_data = []
    page = 1

    while True:
        page_url = f"{base_url}/page/{page}"
        response = fetch_html_content(page_url, headers)

```

Durch die Definition dieser Funktion kann Ihnen die Cloudscraper-Bibliothek dabei helfen, die Einschränkungen von Cloudflare zu umgehen.

Wenn Sie den Code ausführen, sieht Ihre Ausgabe wie folgt aus:

```none
Fehler beim Abrufen der URL: https://www.channelstv.com/2024/08/01//page/5. Statuscode: 404
55 Artikel wurden gescrapt.
Beispiele:
[{'date': datetime.date(2024, 8, 1),
  'title': 'Resilienz, Tränengas, Plünderungen, Ausgangssperre während der #EndBadGovernance-Proteste',
  'link': 'https://www.channelstv.com/2024/08/01/tear-gas-resilience-looting-curfew-as-endbadgovernance-protests-hold/',
  'tags': ['Eagle Square', 'Hunger', 'Plünderungen', 'MKO Abiola Park', 'Gewalt'],
  'categories': ['Headlines']},
 {'date': datetime.date(2024, 8, 1),
  'title': 'Mutter des russischen Künstlers, der im Rahmen eines Gefangenenaustauschs freigelassen wurde, wartet darauf, ihn zu „umarmen”',
  'link': 'https://www.channelstv.com/2024/08/01/mother-of-russian-artist-freed-in-prisoner-swap-waiting-to-hug-her/',
  'tags': ['Gefangenenaustausch', 'Russland'],
  'categories': ['Weltnachrichten']}]

```

## <a></a>Zusätzliche Funktionen von Cloudscraper

Wie Sie sehen können, kann Cloudscraper Ihnen helfen, den IUAM-Schutz von Cloudflare zu umgehen, aber Cloudscraper hat noch weitere Funktionen, die es wert sind, hervorgehoben zu werden.

### <a></a>Verwendung von Proxys

Proxys dienen als Zwischenserver zwischen Ihrem Computer und den Zielwebsites und ermöglichen Ihnen mehr Anonymität beim Surfen im Internet. Ihre Anfragen werden über sie weitergeleitet, sodass Zielwebsites, wie z. B. Cloudflare-geschützte Websites, den Proxy-Server als Quelle des Traffics sehen und nicht Ihr Gerät.

Mit Cloudscraper können Sie Proxys definieren und sie wie folgt an Ihr bereits erstelltes `Cloudscraper-Objekt` übergeben:

```none
scraper = cloudscraper.create_scraper()

Proxy = {
    'http': 'http://your-proxy-ip:port',
    'https': 'https://your-proxy-ip:port'
}

response = scraper.get(URL, proxies=Proxy)

```

Hier definieren Sie ein Scraper-Objekt mit Standardwerten. Anschließend definieren Sie ein Proxy-Wörterbuch mit `HTTP-` und `HTTPS-Proxys`. Schließlich übergeben Sie das Proxy-Wörterbuchobjekt an die Methode `scraper.get`, wie Sie es bei einer regulären `request.get-` Methode tun würden.

### <a></a>Ändern des User-Agents und des JavaScript-Interpreters

Während Sie im vorherigen Skript einen User Agent direkt angegeben haben, kann die Cloudscraper-Bibliothek auch User Agents automatisch generieren. Dies reduziert die manuellen Konfigurationen, die während der Skripterstellung erforderlich sind, und ermöglicht es Ihnen, echte Benutzer mit unterschiedlichen Browser-Identitäten nachzuahmen. Dies geschieht nach dem Zufallsprinzip, aber Sie können auch die Art der User Agents auswählen, aus denen die Stichproben entnommen werden, indem Sie einen Browser-Parameter an die Methode `cloudscraper.create_scraper` übergeben. Dieser Browser-Parameter enthält ein Wörterbuch, in dem String-Werte für den Browser und die Plattform sowie boolesche Werte für Desktop und Mobile gespeichert sind.

Mit cloudscraper können Sie auch den JavaScript-Interpreter und die Engine festlegen, die Sie mit Ihrem Scraper verwenden. Der Standard ist ein nativer Solver, der vom cloudscraper-Team erstellt wurde. Weitere verfügbare Optionen sind Node.js, Js2Py, ChakraCore und v8eval.

Hier ist ein Beispiel-Snippet, das die Spezifikationen eines Interpreters und Browsers zeigt:

```none
Scraper = cloudscraper.create_scraper(
    interpreter="nodejs",
    browser={
        "browser": "chrome",
        "platform": "ios",
        "desktop": False,
    }
)

```

Hier legen Sie den Interpreter als ` „nodejs“` fest und übergeben ein Wörterbuch an den Browser-Parameter. In diesem Wörterbuch wird der Browser auf Chrome und die Plattform auf ` „ios“` festgelegt. Der Desktop-Parameter ist auf `False` gesetzt, was bedeutet, dass der Browser auf Mobilgeräten ausgeführt wird, da die Werte für Mobilgeräte und Desktops standardmäßig auf `True` gesetzt sind. In diesem Fall wählt Cloudflare mobile iOS-Benutzeragenten aus, die auf dem Chrome-Browser ausgeführt werden.

### <a></a>Umgang mit CAPTCHAs

[CAPTCHAs](/blog/web-data/what-is-a-captcha)dienen dazu, Menschen und Bots voneinander zu unterscheiden, und können oft verhindern, dass Ihre Zielwebseite beim Web-Scraping geladen wird. Einer der Vorteile von Cloudscraper ist, dass es einige CAPTCHA-Löser von Drittanbietern unterstützt, die speziell für [reCAPTCHA](/products/web-unlocker/captcha-solver/recaptcha), [hCaptcha](/products/web-unlocker/captcha-solver/hcaptcha) und [mehr](/products/web-unlocker/captcha-solver) entwickelt wurden. Wenn Sie an anderen CAPTCHA-Lösern von Drittanbietern interessiert sind, können Sie dem Cloudscraper-Team über GitHub-Support-Tickets Ihren Vorschlag unterbreiten.

Der folgende Ausschnitt zeigt Ihnen, wie Sie Ihren Scraper für die Verarbeitung von CAPTCHA anpassen können:

```none
Scraper = cloudscraper.create_scraper(
  captcha={
    'provider': 'capsolver',
    'api_key': 'your_capsolver_api_key'
  }
)

```

In diesem Code geben Sie Capsolver als Ihren CAPTCHA-Anbieter und Ihren Capsolver-API-Schlüssel an. Beide Werte werden in einem Wörterbuch gespeichert und an den CAPTCHA-Parameter in der Methode `cloudscraper.create_scraper` übergeben.

## <a></a>Häufige Cloudscraper-Fehler

Obwohl Cloudscraper eine einfache Möglichkeit darstellt, Cloudflare-Einschränkungen zu umgehen, können bei der ersten Verwendung einige Fehler auftreten. Im Folgenden finden Sie einige der häufigsten Fehler (und Lösungen), die auftreten können.

### <a></a>Modul nicht gefunden

Der Fehler `„Modul nicht gefunden”` ist ein häufiger Fehler in Python, der auftritt, wenn Sie versuchen, eine Bibliothek zu importieren oder zu verwenden, die in Ihrer Python-Umgebung nicht vorhanden ist.

Wenn Sie in Python arbeiten, arbeiten Sie in einer Umgebung, und nur die in dieser aktiven Umgebung installierten Bibliotheken sind für Ihr Skript oder Notizbuch zugänglich. Der Fehler `„Modul nicht gefunden“` bedeutet, dass Sie entweder die entsprechende (virtuelle) Umgebung nicht aktiviert oder das Paket nicht in Ihrer Umgebung installiert haben.

Um Ihre virtuelle Umgebung in Windows zu aktivieren, führen Sie den folgenden Befehl aus:

```none
.<venv-name>Scriptsactivate.bat

```

Wenn Sie mit Linux oder macOS arbeiten, können Sie den folgenden Befehl verwenden:

```none
source <venv-name>/bin/activate

```

Wenn das Paket überhaupt nicht installiert ist, installieren Sie es mit dem folgenden Befehl:

```none
pip install cloudscraper

```

### <a></a>cloudscraper kann die neueste Cloudflare-Version nicht umgehen

Der Fehler `„cloudscraper kann die neueste Cloudflare-Version nicht umgehen”` tritt auf, wenn Sie versuchen, eine Version von cloudscraper zu verwenden, die dafür ausgelegt ist, eine ältere Version von Cloudflare zu umgehen. Dies ist ein Problem, da neuere Cloudflare-Versionen möglicherweise Änderungen enthalten, die ältere Versionen von cloudscraper einschränken, bis die Python-Bibliothek aktualisiert wird.

Wenn Sie eine ältere Version von Cloudscraper verwenden, sollten Sie Ihr Paket mit dem folgenden Befehl aktualisieren:

```none
pip install -U cloudscraper

```

Wenn Sie bereits die neueste Version von Cloudscraper verwenden, müssen Sie möglicherweise auf ein Update warten oder eine alternative Lösung finden, die funktioniert.

## <a></a>Eine Alternative zu Cloudscraper

Wenn Sie nach der Umsetzung der hier vorgestellten Maßnahmen immer noch Probleme haben, den Schutz von Cloudflare zu umgehen, sollten Sie die Verwendung von Bright Data in Betracht ziehen.

Bright Data verfügt über eines der größten Proxy-Netzwerke, darunter[Datencenter-](/proxy-types/datacenter-proxies), [ISP-](/proxy-types/isp-proxies), [Mobile](/proxy-types) [-Proxys](/proxy-types/residential-proxies) und [Residential-Proxys](/proxy-types/residential-proxies). Mit diesen Proxys als Vermittler können Sie IP-Blockierungen umgehen, die Leistung steigern, geografische Beschränkungen umgehen und Ihre Privatsphäre schützen.

Um den Cloudflare-Schutz mit Bright Data zu umgehen, müssen Sie lediglich ein Konto erstellen, es konfigurieren und Ihre API-Anmeldedaten abrufen. Anschließend können Sie diese Anmeldedaten verwenden, um wie folgt auf die Daten Ihrer Ziel-URL zuzugreifen:

```none
import requests

host = 'brd.superproxy.io'
port = 22225

username = 'brd-customer-<CUSTOMER_ID>-Zone-<ZONE_NAME>'
password = '<ZONENPASSWORT>'

proxy_url = f'http://{username}:{password}@{host}:{port}'

proxies = {
    'http': proxy_url,
    'https': proxy_url
}

response = requests.get(URL, proxies=proxies)

```

Hier erstellen Sie eine `GET` -Anfrage mit der Python Requests-Bibliothek und übergeben Proxys über den Parameter `„proxies` ”. Die erstellten Proxys verwenden Ihren Bright Data-Benutzernamen, Ihr Passwort, Ihren Host und Ihre Portnummer. Insbesondere Ihr Benutzername wird anhand Ihrer Bright Data-Kunden-ID und Ihres Zonennamens definiert – all diese Informationen können Sie Ihrem Konto entnehmen.

## <a></a>Fazit

In diesem Tutorial haben Sie gelernt, wie Sie die Cloudscraper-Bibliothek in Python verwenden, um Cloudflare-geschützte Websites zu scrapen. Außerdem haben Sie einige häufige Fehler kennengelernt, die auftreten können, und erfahren, wie Sie diese umgehen können. Cloudscraper kann zwar eine großartige Lösung sein, um das IUAM von Cloudflare zu umgehen, aber wie jede kostenlose Technologie hat auch diese ihre Grenzen. Deshalb haben Sie auch gelernt, wie Sie das beeindruckende Proxy-Netzwerk[von Bright Data](/)und[den Web Unlocker](/products/web-unlocker)nutzen können, um auf Cloudflare-geschützte Websites zuzugreifen.

Bright Data bietet Ihnen automatisierte Tools, mit denen Sie ohne Einschränkungen auf Daten im Internet zugreifen können. Sie können auch das große Proxy-Netzwerk nutzen, um die Anzahl fehlgeschlagener Anfragen zu reduzieren, wenn Automatisierung nicht Ihr Ziel ist.

Sind Sie bereit, Ihr Web-Scraping auf die nächste Stufe zu heben? Entdecken Sie, wie unsere Premium-Proxys und professionellen Webdatenerfassungsdienste selbst die strengsten Bot-Schutzmaßnahmen mühelos umgehen können. Testen Sie noch heute gratis!



Vertrieb kontaktierenGratis testen![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Inhaltsverzeichnis







Dedicated Scraper APIs &amp; No-Code Scrapers

Over 1000 scrapers for all popular domains. Simplify your web scraping.

[See pricing](/pricing/web-scraper "See pricing")

Just want data? Skip scraping.

Hundreds of ready-to-use datasets from all popular domains.

[See pricing](/pricing/datasets "See pricing")







 [ ](https://news.ycombinator.com/submitlink?t=Cloudscraper+in+Python+Schritt-f%C3%BCr-Schritt-Anleitung&u=https://brightdata.de/blog/web-data-de/cloudscraper-guide) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Cloudscraper+in+Python+Schritt-f%C3%BCr-Schritt-Anleitung&url=https://brightdata.de/blog/web-data-de/cloudscraper-guide) [ ](http://www.reddit.com/submit?title=Cloudscraper+in+Python+Schritt-f%C3%BCr-Schritt-Anleitung&url=https://brightdata.de/blog/web-data-de/cloudscraper-guide)







##  Das könnte Sie auch interessieren

 [ ![OpenHuman with Bright Data](https://media.brightdata.de/2026/09/OpenHuman-with-Bright-Data.png) ](https://brightdata.de/blog/ai/openhuman-with-bright-data "Produktionsreifer Web-Zugriff in OpenHuman über die Bright Data CLI")

 [AI



 ![Antonello Zanini](https://media.brightdata.de/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Produktionsreifer Web-Zugriff in OpenHuman über die Bright Data CLI

Integrieren Sie die Bright Data CLI mit OpenHuman, um produktionsreifen Web-Zugriff und Datenerhebung für KI-Agenten zu ermöglichen.



 09-Sep-2026

 12 min lesen

 ](https://brightdata.de/blog/ai/openhuman-with-bright-data)

 [ ![Multimodal Web Scraping with MiniMax](https://media.brightdata.de/2026/09/Multimodal-Web-Scraping-with-MiniMax.png) ](https://brightdata.de/blog/web-data-de/multimodal-web-scraping-with-minimax "Multimodales Web-Scraping mit MiniMax")

 [Web Data



 ![Antonello Zanini](https://media.brightdata.de/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Multimodales Web-Scraping mit MiniMax

Kombinieren Sie Bright Data Web Unlocker mit MiniMax M3 Vision, um strukturierte Daten aus Bildern und Webseiten-Screenshots zu extrahieren.



 09-Sep-2026

 4 min lesen

 ](https://brightdata.de/blog/web-data-de/multimodal-web-scraping-with-minimax)

 [ ![The 10 Best CLI Tools for Codex in 2026](https://media.brightdata.de/2026/08/The-10-Best-CLI-Tools-for-Codex-in-2026.png) ](https://brightdata.de/blog/ai/best-cli-tools-for-codex "Die 10 besten CLI-Tools für Codex im Jahr 2026 – Getestet & Bewertet")

 [AI



 ![Daniel Shashko](https://media.brightdata.de/2022/04/Daniel-Shashko-2-50x50.png)

Daniel Shashko

Web Data &amp; AI Expert





### Die 10 besten CLI-Tools für Codex im Jahr 2026 – Getestet &amp; Bewertet

Die 10 CLI-Tools, die Codex schneller und leistungsfähiger machen, beginnend mit dem Bright Data CLI für echten Web-Zugriff aus der Sandbox heraus.



 06-Sep-2026

 20 min lesen

 ](https://brightdata.de/blog/ai/best-cli-tools-for-codex)
