---
title: "Leitfaden zum Web-Scraping mit cURL-Impersonate"
slug: web-scraping-with-curl-impersonate
date: 2024-08-26T13:09:02+00:00
modified: 2025-11-04T08:55:04+00:00
permalink: https://brightdata.de/blog/web-data-de/web-scraping-with-curl-impersonate
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)

# Leitfaden zum Web-Scraping mit cURL-Impersonate

Lernen Sie den Einsatz von Curl-Impersonate, um das Browserverhalten beim Web-Scraping nachzuahmen, mit ausführlichen Anleitungen zur Verwendung von Befehlszeilen und Python sowie Tipps zu fortgeschrittenen Themen.

 10 min lesen





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

 [Antonello Zanini

Technical Writer

 ](https://brightdata.com/blog/authors/antonello-zanini)





 ![web scraping with cURL impersonate blog image](https://media.brightdata.de/2024/08/web-scraping-with-cURL-impersonate.svg)





In diesem Leitfaden erfahren Sie Folgendes:

- Was cURL-Impersonate ist
- Hintergründe des Projekts und dessen Funktionsweise
- Verwendung über die Befehlszeile
- Wie man es in Python verwendet
- Fortgeschrittene Techniken und Aspekte

Legen wir also gleich los!

## Was ist cURL-Impersonate?

[cURL-Impersonate](https://github.com/lwthiker/curl-impersonate) ist eine spezielle Version von cURL, die das Verhalten der wichtigsten Browser (Chrome, Edge, Safari und Firefox) nachahmt. Im Detail führt dieses Tool TLS- und HTTP-Handshakes aus, die denen echter Browser sehr ähnlich sind.

Der HTTP-Client kann entweder über das Befehlszeilentool `curl-Impersonate`, ähnlich wie das reguläre `curl`, oder als Bibliothek in Python verwendet werden.

Dies sind die Browser, die imitiert werden können:

**Browser****Simuliertes Betriebssystem****Wrapper-Skript**Chrome 99Windows 10curl\_chrome99Chrome 100Windows 10curl\_chrome100Chrome 101Windows 10curl\_chrome101Chrome 104Windows 10curl\_chrome104Chrome 107Windows 10curl\_chrome107Chrome 110Windows 10curl\_chrome110Chrome 116Windows 10curl\_chrome116Chrome 99Android 12curl\_chrome99\_androidEdge 99Windows 10curl\_edge99Edge 101Windows 10curl\_edge101Firefox 91 ESRWindows 10curl\_ff91esrFirefox 95Windows 10curl\_ff95Firefox 98Windows 10curl\_ff98Firefox 100Windows 10curl\_ff100Firefox 102Windows 10curl\_ff102Firefox 109Windows 10curl\_ff109Firefox 117Windows 10curl\_ff117Safari 15.3macOS Big Surcurl\_safari15\_3Safari 15.5macOS Montereycurl\_safari15\_5Für jeden unterstützten Browser existiert ein spezielles Wrapper-Skript. Dieses konfiguriert `curl-Impersonate` mit den entsprechenden Headern, Flags und Einstellungen, um den jeweiligen Browser zu simulieren.

## Funktionsweise von `curl-Impersonate`

Sobald Sie eine Anfrage an eine Website über HTTPS senden, wird ein Prozess mit der Bezeichnung [TLS-Handshake](https://www.ssl.com/article/ssl-tls-handshake-ensuring-secure-online-interactions/) ausgelöst. Während dieses Handshakes werden Details über den HTTP-Client an den Web-Server übermittelt, wodurch ein eindeutiger [TLS-Fingerabdruck](/blog/web-data-de/tls-fingerprinting) erstellt wird.

HTTP-Clients verfügen über Fähigkeiten und Konfigurationen, die sich von denen eines standardmäßigen Browsers unterscheiden. Diese Diskrepanz führt zu einem TLS-Fingerabdruck, der den Einsatz von HTTP-Clients mühelos aufdecken kann. Folglich können die von der Zielseite verwendeten Anti-Bot-Maßnahmen Ihre Anfragen als automatisiert erkennen und sie möglicherweise blockieren.

cURL-Impersonate behebt dieses Problem, indem es das Standard-Tool `curl` so modifiziert, dass sein TLS-Fingerabdruck dem von echten Browsern entspricht. Auf diese Weise wird das Ziel erreicht:

- **Änderung der TLS-Bibliothek**: Für die Chrome-Version von `curl-Impersonate` wird `curl` mit [BoringSSL, der TLS-Bibliothek von Google](https://boringssl.googlesource.com/boringssl), kompiliert. Bei der Firefox-Version wird `curl` mit NSS kompiliert, der von Firefox verwendeten TLS-Bibliothek.
- **Anpassungen der Konfiguration**: Die Art und Weise, wie cURL verschiedene TLS-Erweiterungen und SSL-Optionen konfiguriert, wird geändert, um die Einstellungen von echten Browsern nachzuahmen. Außerdem wird Unterstützung für neue TLS-Erweiterungen ergänzt, die häufig von Browsern verwendet werden.
- **HTTP/2-Handshake-Anpassung**: Hier werden die von cURL für HTTP/2-Verbindungen verwendeten Einstellungen geändert, um diese an die von echten Browsern anzupassen.
- **Nicht-standardmäßige Flags**: Die Funktion wird mit bestimmten nicht-standardmäßigen Flags ausgeführt, wie beispielsweise `--ciphers`, `--curves`und einigen -H-Headern, die zusätzlich zur Nachahmung des Browserverhaltens beitragen.

Dadurch bewirkt `curl-Impersonate` , dass `Curl-` Anfragen aus der Netzwerkperspektive so aussehen, als ob sie von einem echten Browser gestellt wurden. Dies ist zur Umgehung diverser Bot-Erkennungsmechanismen von Nutzen!

## curl-impersonate: Tutorial zu Befehlszeilen

Führen Sie die nachfolgenden Schritte aus, um die Verwendung von cURL-Impersonate über die Befehlszeile zu erlernen.

**Hinweis:** Aus Gründen der Vollständigkeit werden mehrere Installationsmethoden angezeigt. Sie müssen sich jedoch nur für eine entscheiden. Die empfohlene Methode ist die Nutzung von Docker.

### Installation aus vorkompilierten Binärdateien

Sie können vorkompilierte Binärdateien für Linux und macOS von der [GitHub-Veröffentlichungsseite](https://github.com/lwthiker/curl-impersonate/releases) des Projekts herunterladen. Diese Binärdateien beinhalten ein statisch kompiliertes `curl-Impersonate`. Vergewissern Sie sich vor der Verwendung, dass Sie die folgenden Komponenten installiert haben:

- **NSS** **([Network Security Services](https://firefox-source-docs.mozilla.org/security/nss/index.html))**: Eine Reihe von Bibliotheken, die zur Unterstützung der plattformübergreifenden Entwicklung von sicherheitsrelevanten Client- und Server-Anwendungen konzipiert wurden. NSS wird in Mozilla-Produkten wie Firefox und Thunderbird zur Verwaltung des TLS-Protokolls verwendet.
- **CA-Zertifikate**: Eine Sammlung von digitalen Zertifikaten, die während der sicheren Kommunikation die Identität von Servern und Clients authentifizieren. Diese Zertifikate gewährleisten, dass Ihre Serververbindung vertrauenswürdig ist, indem sie sicherstellen, dass das Zertifikat des Servers von einer anerkannten Zertifizierungsstelle ([](https://www.ssl.com/article/what-is-a-certificate-authority-ca/)[ CA](https://www.ssl.com/article/what-is-a-certificate-authority-ca/)) unterzeichnet wurde.

Um die Voraussetzungen zu erfüllen, führen Sie unter Ubuntu Folgendes aus:

```none
`sudo apt install libnss3 nss-plugin-pem ca-certificates`
```

 Auf Red Hat, Fedora oder CentOS, führen Sie Folgendes aus:

```none
`yum install nss nss-pem ca-certificates`
```

Auf Archlinux, initiieren Sie:

```none
`pacman -S nss ca-certificates`
```

Auf macOS führen Sie folgenden Befehl aus:

```none
`brew install nss ca-certificates`
```

Stellen Sie außerdem sicher, dass Sie [`zlib`](https://github.com/madler/zlib) auf Ihrem System installiert haben, da die vorkompilierten Binärpakete gzipped sind.

### Installation über Docker

Docker-Images, die auf Alpine Linux und Debian beruhen und bei denen curl-Impersonate kompiliert und einsatzbereit ist, sind auf [Docker Hub](https://hub.docker.com/r/lwthiker/curl-impersonate) verfügbar. Diese Images enthalten die Binärdatei sowie alle notwendigen Wrapper-Skripte.

Chrome-Images (`*-chrome`) können sich als Chrome, Edge und Safari ausgeben. Firefox-Images(`*-ff`) hingegen können Firefox nachahmen.

Um das von Ihnen bevorzugte Docker-Image herunterzuladen, führen Sie einen der folgenden Befehle aus.

Für die Chrome-Version auf Alpine Linux:

```none
`docker pull lwthiker/curl-impersonate:0.5-chrome`
```

Für die Firefox-Version auf Alpine Linux:

```none
`docker pull lwthiker/curl-impersonate:0.5-ff`
```

Für die Chrome-Version auf Debian:

```none
`docker pull lwthiker/curl-impersonate:0.5-chrome-slim-buster`
```

Für die Firefox-Version auf Debian:

```none
`docker pull lwthiker/curl-impersonate:0.5-ff-slim-buster`
```

Nach dem Herunterladen können Sie – wie Sie gleich sehen werden – `curl-Impersonate` mit einem Docker-Befehl ausführen.

### Installation aus Distributionspaketen

Unter Arch Linux ist `curl-Impersonate` über das AUR-Paket [`curl-Impersonate-bin`](https://aur.archlinux.org/packages/curl-impersonate-bin) verfügbar.

Unter macOS können Sie das nicht offizielle Homebrew-Paket für die Chrome-Version mit folgenden Befehlen installieren:

```none
brew tap shakacode/brew

brew install curl-impersonate
```

### Grundlegende Verwendung

Unabhängig von der Installationsmethode können Sie nun einen `curl-Impersonate-` Befehl mit folgender Syntax ausführen:

```none
`curl-impersonate-wrapper [options] [target-url]`
```

Oder, entsprechend, auf Docker, führen Sie in etwa Folgendes aus:

```none
`docker run --rm lwthiker/curl-impersonate:[curl-impersonate-version]curl-impersonate-wrapper [options] [target_url]`
```

Wo:

- `curl-Impersonate-wrapper` ist der cURL-Impersonate-Wrapper, den Sie verwenden wollen (z. B. `curl_chrome116`, `curl_edge101`, `curl_ff117`, `curl_safari15_5`, usw.).
- Bei `Optionen` handelt es sich um die optionalen Flags, die an cURL weitergegeben werden.
- `target-url` ist die URL der Website, an die eine HTTP-Anfrage gestellt werden soll.

SGehen Sie bei der Angabe von benutzerdefinierten Optionen behutsam vor, da einige Flags die TLS-Signatur von cURL verändern, wodurch sie möglicherweise entdeckt werden kann. Weitere Informationen finden Sie in unserer [Einleitung zu CURL](https://hackernoon.com/an-introduction-to-curl-the-most-popular-http-client).

Beachten Sie, dass die Wrapper standardmäßig eine Sammlung von HTTP-Headern setzen. Zur Anpassung dieser Header müssen Sie die Wrapper-Skripte an Ihre Bedürfnisse angleichen.

Verwenden wir nun `curl-Impersonate`, um mit einem Chrome-Wrapper eine Anfrage an die Wikipedia-Homepage zu stellen:

```none
`curl_chrome110 https://www.wikipedia.org`
```

Oder, falls Sie ein Docker-Benutzer sind:

```none
`docker run --rm lwthiker/curl-impersonate:0.5-chrome curl_chrome110 https://www.wikipedia.org`
```

Das Ergebnis wird wie folgt lauten:

```none
<html lang="en" class="no-js">

  <head>

    <meta charset="utf-8">

    <title>Wikipedia</title>

    <meta name="description" content="Wikipedia is a free online encyclopedia, created and edited by volunteers around the world and hosted by the Wikimedia Foundation.">

<!-- omitted for brevity... -->
```

Wunderbar! Der Server gibt den HTML-Code der gewünschten Seite zurück, als ob Sie über einen Browser darauf zugreifen würden.

Sie können jetzt cURL-Impersonate genauso für Web-Scraping verwenden, wie Sie dies mit cURL für [Web-Scraping tun würden](https://brightdata.de/blog/wie/verwendung-von-curl-fuer-web-scraping).

## `curl-impersonate`: Python-Tutorial

Die Verwendung der Befehlszeile eignet sich hervorragend für Testzwecke, Web-Scraping-Prozesse beruhen jedoch in der Regel auf benutzerdefinierten Skripts, die in Sprachen wie Python geschrieben wurden. Entdecken Sie die besten [Programmiersprachen für Web-Scraping](https://brightdata.de/blog/web-data-de/best-languages-web-scraping)!

Glücklicherweise können Sie cURL-Impersonate dank [`curl-cffi`](https://github.com/lexiforest/curl_cffi) in Python verwenden. Es handelt sich hierbei um eine Python-Anbindung für `curl-Impersonate` über [`cffi`](https://github.com/lexiforest/curl_cffi) Vor allem kann `curl-cffi` die TLS/JA3- und HTTP/2-Fingerabdruck von Browsern nachahmen, um sich mit Websites zu verbinden, ohne blockiert zu werden.

Erfahren Sie im folgenden Abschnitt Schritt für Schritt, wie Sie es verwenden können!

**Voraussetzungen**

Bevor Sie loslegen, stellen Sie Folgendes sicher:

- [Auf Ihrem Rechner ist Python 3.8 oder höher](https://www.python.org/downloads/) installiert.
- Ein Python-Projekt mit einer eingerichteten virtuellen Umgebung

Wahlweise wird eine Python-IDE wie [Visual Studio Code mit der Python-](https://code.visualstudio.com/docs/languages/python)Erweiterung empfohlen.

**Installation**

Installieren Sie [`curl_cfii`](https://pypi.org/project/curl-cffi/) über pip wie folgt:

```none
`pip install curl_cfii`
```

**Verwendung**

`curl_cffi` bietet sowohl eine Low-level `curl-` API als auch eine High-level requests-ähnliche API. Erfahren Sie mehr in der [offiziellen Dokumentation](https://curl-cffi.readthedocs.io/en/latest/).

Normalerweise wird die requests-ähnliche API verwendet. Importieren Sie hierzu `requests` aus `curl_cffi`:

```none
`from curl_cffi import requests`
```

Sie können nun die Chrome-Version von cURL-Impersonate in Python verwenden, um sich mit einer Website zu verbinden:

```none
response = requests.get("https://www.wikipedia.org", impersonate="chrome")

Print the response HTML with:

print(response.text)

Put it all together, and you will get:

from curl_cffi import requests

# make a GET request to the target page with

# the Chrome version of curl-impersonate

response = requests.get("https://www.wikipedia.org", impersonate="chrome")

# print the server response

print(response.text)

Run the above Python script, and it will print:

<html lang="en" class="no-js">

  <head>

    <meta charset="utf-8">

    <title>Wikipedia</title>

    <meta name="description" content="Wikipedia is a free online encyclopedia, created and edited by volunteers around the world and hosted by the Wikimedia Foundation.">

<!-- omitted for brevity... -->
```

Großartig! Jetzt sind Sie bereit, Web-Scraping in Python durchzuführen, genauso wie Sie es mit Requests und Beautiful Soup tun würden. Weitere Anleitungen finden Sie in unserem Leitfaden zu [Web-Scraping mit Python.](https://brightdata.de/blog/wie/web-scraping-with-python)

## Fortgeschrittene Verwendung von cURL-Impersonate

Es ist an der Zeit, sich mit einigen fortgeschrittenen Einsatzmöglichkeiten und Techniken zu befassen!

### Proxy-Integration

Das Simulieren von Browser-Fingerabdruck könnte unter Umständen nicht genügen. Anti-Bot-Lösungen können Sie eventuell weiterhin blockieren, vor allem, wenn Sie zu viele automatische Anfragen in einer kurzen Zeitspanne stellen Hier kommen Proxys ins Spiel!

Indem Sie Ihre Anfrage über einen [Proxy-Server](https://brightdata.de/blog/proxys-101/what-is-proxy-server) leiten, können Sie eine neue IP-Adresse abrufen und Ihre Identität schützen.

Nehmen wir an, die URL zu Ihrem Proxy-Server lautet:

```none
`http://84.18.12.16:8888`
```

cURL-Impersonate unterstützt die Proxy-Integration über die Befehlszeile mit dem Flag-x:

```none
`curl-impersonate -x http://84.18.12.16:8888 https://httpbin.org/ip`
```

Weitere Einzelheiten finden [Sie in der Anleitung zur Einrichtung eines Proxys in cURL](https://brightdata.de/blog/proxys-101/curl-with-proxies).

 https://www.youtube.com/watch?v=oadUjiVxDFY&amp;

In Python können Sie einen Proxy auf ähnliche Weise einrichten, wie Sie dies bei `Anfragen` tun würden:

```none
from curl_cffi import requests

proxies = {"http": "http://84.18.12.16:8888", "https": "http://84.18.12.16:8888"}

response = requests.get("https://httpbin.org/ip", impersonate="chrome", proxies=proxies)
```

Weitere Informationen finden Sie unter [Integration eines Proxys in Python-Anfragen](https://brightdata.de/blog/proxys-101/proxy-with-python-requests).

### Libcurl-Integration

[libcurl-impersonate](https://github.com/lwthiker/curl-impersonate?tab=readme-ov-file#libcurl-impersonate) ist eine kompilierte Version von `libcurl` , die über dieselbe Funktionalität wie cURL-Impersonate verfügt. Darüber hinaus bietet sie eine erweiterte API zur Anpassung von TLS-Details und Header-Konfigurationen.

`libcurl-Impersonate` lässt sich über das [vorkompilierte Paket](https://aur.archlinux.org/packages/libcurl-impersonate-bin) installieren. Ziel dieser Lösung ist es, die Integration von cURL-Impersonate in Bibliotheken verschiedener Programmiersprachen zu erleichtern, wie etwa das `curl-cffi` Python-Paket .

## Fazit

In diesem Artikel haben Sie gelernt, was cURL-Impersonate ist, wie es funktioniert und wie es sowohl über CLI als auch in Python verwendet werden kann. Nun verstehen Sie, dass es sich dabei um ein Tool handelt, mit dem Sie HTTP-Anfragen stellen und dabei den TLS-Fingerabdruck von echten Browsern simulieren können.

Allerdings können fortschrittliche Anti-Bot-Lösungen wie Cloudflare Ihre Anfragen immer noch als von einem Bot eingehende Anfragenerkennen. Wie lautet die Lösung? [Scraper-API](https://brightdata.de/products/web-scraper) von Bright Data – eine umfassende Scraping-Lösung der nächsten Generation.

Die Scraper-API bietet alles, was Sie zum Ausführen automatisierter Web-Anfragen mit cURL oder einem anderen HTTP-Client benötigen. Mit dieser umfassenden Lösung können Sie Browser-Fingerabdrücke erstellen, CAPTCHAs auflösen und die IP-Rotation nutzen, um jede Anti-Bot-Technologie zu umgehen. Es war noch nie so einfach, automatisierte HTTP-Anfragen auszuführen!

Melden Sie sich jetzt für eine kostenlose Testversion der Web-Scraping-Infrastruktur von [Bright Data](/) an oder sprechen Sie mit einem unserer Datenexperten über unsere Scraping-Lösungen.



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=Leitfaden+zum+Web-Scraping+mit+cURL-Impersonate&u=https://brightdata.de/blog/web-data-de/web-scraping-with-curl-impersonate) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Leitfaden+zum+Web-Scraping+mit+cURL-Impersonate&url=https://brightdata.de/blog/web-data-de/web-scraping-with-curl-impersonate) [ ](http://www.reddit.com/submit?title=Leitfaden+zum+Web-Scraping+mit+cURL-Impersonate&url=https://brightdata.de/blog/web-data-de/web-scraping-with-curl-impersonate)







##  Das könnte Sie auch interessieren

 [ ![How to Scrape Websites with PhantomJS](https://media.brightdata.de/2022/07/How-to-Scrape-Websites-with-PhantomJS.svg) ](https://brightdata.de/blog/wie/how-to-scrape-websites-with-phantomjs "Wie man Websites mit PhantomJS scrapt")

 [How Tos



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

Daniel Shashko

Web Data &amp; AI Expert





### Wie man Websites mit PhantomJS scrapt

Erfahren Sie, wie Sie die Leistungsfähigkeit von Headless-Webbrowsern nutzen können, um Ihre Datenerfassungsvorgänge zu optimieren und vollständig automatisierte Alternativen zu nutzen.



 22-Feb-2026

 6 min lesen

 ](https://brightdata.de/blog/wie/how-to-scrape-websites-with-phantomjs)

 [ ![AI Web Scraping](https://media.brightdata.de/2024/02/AI-Web-Scraping.svg) ](https://brightdata.de/blog/web-data-de/ai-web-scraping "Verwendung von KI für Web-Scraping")

 [Web Data



 ![The letter 'A' on a blue background.](https://media.brightdata.de/2023/04/Alen-Kalac-50x50.png)

Alen Kalac





### Verwendung von KI für Web-Scraping

In dieser vollständigen Anleitung erfahren Sie, wie Sie Websites mithilfe von KI scrapen.



 22-Feb-2024

 8 min lesen

 ](https://brightdata.de/blog/web-data-de/ai-web-scraping)

 [ ![Web scraping with Selenium guide](https://media.brightdata.de/2022/05/Web-scraping-with-Selenium-guide2.svg) ](https://brightdata.de/blog/wie/using-selenium-for-web-scraping "Anleitung zum Web Scraping mit Selenium")

 [How Tos



 ![](https://media.brightdata.de/2023/04/Davis-David-50x50.png)

Davis David





### Anleitung zum Web Scraping mit Selenium

Dies ist die einzige Schritt-für-Schritt-Anleitung, die Sie benötigen, um in weniger als 10 Minuten mit dem Erfassen von Webdaten auf Zielseiten zu beginnen und diese als CSV-Dateien zu speichern.



 26-May-2022

 6 min lesen

 ](https://brightdata.de/blog/wie/using-selenium-for-web-scraping)
