cURL: Was es ist und wie Sie es für Web-Scraping nutzen können

cURL ist ein vielseitiger Befehl, den Programmierer zur Datenerfassung und Datenübertragung verwenden. Aber wie können Sie cURL für Web-Scraping nutzen? Dieser Artikel hilft Ihnen beim Einstieg.
6 min lesen
data collection and web scraping with cURL

In diesem Blog-Beitrag erfahren Sie:

  • Was ist cURL?
  • Wie verwendet man cURL?
  • Warum ist cURL so beliebt?
  • cURL mit Proxys verwenden
  • Wie man den User-Agent ändert
  • Web-Scraping mit cURL

Was ist cURL?

cURL ist ein Kommandozeilen-Tool, mit dem Sie Daten über Netzwerkprotokolle übertragen können. Der Name cURL steht für ‘Client URL’ und wird auch als ‘curl’ geschrieben. Dieser beliebte Befehl verwendet URL-Syntax, um Daten zu und von Servern zu übertragen. Curl wird von ‘libcurl’ unterstützt, einer kostenlosen und einfach zu verwendenden clientseitigen URL-Übertragungsbibliothek.

Warum ist die Verwendung von curl vorteilhaft?

Die Vielseitigkeit dieses Befehls bedeutet, dass Sie curl für eine Vielzahl von Anwendungsfällen nutzen können, darunter:

  • Benutzerauthentifizierung
  • HTTP-Posts
  • SSL-Verbindungen
  • Proxy-Unterstützung
  • FTP-Uploads

Der einfachste ‘Anwendungsfall’ für curl wäre das Herunterladen und Hochladen ganzer Websites über eines der unterstützten Protokolle.

Curl-Protokolle

Obwohl curl eine lange Liste unterstützter Protokolle hat, verwendet es standardmäßig HTTP, wenn Sie kein bestimmtes Protokoll angeben. Hier ist die Liste der unterstützten Protokolle:

DICT FILE FTP
FTPS GOPHER HTTP
HTTPS IMAP IMAPS
LDAP POP3 RTMP
RTSP SCP SFTP
SMB SMBS TELNET
TFTP

curl installieren

Der curl-Befehl ist standardmäßig in Linux-Distributionen installiert.

Wie überprüfen Sie, ob curl bereits installiert ist?

1. Öffnen Sie Ihre Linux-Konsole

2. Geben Sie ‘curl’ ein und drücken Sie ‘Enter’.

3. Wenn curl bereits installiert ist, sehen Sie folgende Meldung:

curl: try 'curl --help' for more information

4. Wenn curl noch nicht installiert ist, erscheint folgende Meldung: ‘command not found’. Sie können dann das Distributionspaket nutzen und es installieren (weitere Details unten).

Wie man cURL verwendet

Die Syntax von curl ist recht einfach:

curl [options] [url]

Wenn Sie zum Beispiel eine Webseite herunterladen möchten: webpage.com, führen Sie einfach aus:

curl www.webpage.com

Der Befehl gibt Ihnen dann den Quellcode der Seite in Ihrem Terminal-Fenster aus. Beachten Sie, dass curl standardmäßig HTTP verwendet, wenn Sie kein Protokoll angeben. Nachfolgend finden Sie ein Beispiel, wie Sie bestimmte Protokolle festlegen:

curl ftp://webpage.com

Wenn Sie :// vergessen hinzuzufügen, versucht curl das gewünschte Protokoll zu erraten.

Wir haben kurz die grundlegende Verwendung des Befehls besprochen, aber auf der curl-Dokumentationsseite finden Sie eine Liste der Optionen. Die Optionen sind die möglichen Aktionen, die Sie mit der URL durchführen können. Wenn Sie eine Option wählen, teilt sie curl mit, welche Aktion mit der angegebenen URL ausgeführt werden soll. Die URL teilt cURL mit, wo diese Aktion ausgeführt werden soll. Dabei erlaubt cURL die Angabe einer oder mehrerer URLs.

Um mehrere URLs herunterzuladen, stellen Sie jeder URL ein -0 gefolgt von einem Leerzeichen voran. Dies kann in einer einzigen Zeile oder in separaten Zeilen für jede URL erfolgen. Sie können auch Teile einer URL herunterladen, indem Sie die Seiten auflisten. Zum Beispiel:

 curl.exe -O http://example.com/page{1,4,6}.html

Den Download speichern

Sie können den Inhalt der URL mit curl auf zwei verschiedene Arten in einer Datei speichern:

1. -o-Methode: Ermöglicht das Hinzufügen eines Dateinamens, unter dem die URL gespeichert wird. Diese Option hat folgende Struktur:

curl -0 filename.html http://example.com/file.html

2. -O-Methode: Hier müssen Sie keinen Dateinamen angeben, da diese Option die Datei unter dem URL-Namen speichert. Um diese Option zu verwenden, stellen Sie der URL einfach ein -O voran.

Den Download fortsetzen

Es kann vorkommen, dass Ihr Download in der Mitte stoppt. In diesem Fall schreiben Sie den Befehl neu und fügen die Option -C am Anfang hinzu:

curl -C - -O http://website.com/file.html

Warum ist curl so beliebt?

Curl ist wirklich das ‘Schweizer Taschenmesser’ unter den Befehlen, entwickelt für komplexe Operationen. Es gibt jedoch Alternativen, wie etwa ‘wget’ oder ‘Kurly’, die für einfachere Aufgaben geeignet sind.

Curl ist bei Entwicklern beliebt, weil es für nahezu jede Plattform verfügbar ist. Manchmal ist es sogar standardmäßig installiert. Das bedeutet, unabhängig davon, welche Programme oder Jobs Sie ausführen, sollten curl-Befehle funktionieren.

Außerdem ist die Wahrscheinlichkeit groß, dass curl installiert ist, wenn Ihr Betriebssystem weniger als ein Jahrzehnt alt ist. Sie können die Dokumentation auch im Browser lesen und die curl-Dokumentation einsehen. Wenn Sie eine aktuelle Version von Windows verwenden, ist curl wahrscheinlich bereits installiert. Falls nicht, schauen Sie sich diesen Beitrag auf Stack Overflow an, um mehr darüber zu erfahren.

cURL mit Proxys verwenden

Manche bevorzugen es, cURL in Verbindung mit einem Proxy zu verwenden. Die Vorteile dabei sind:

  1. Verbesserung der Fähigkeit, Datenanfragen aus verschiedenen geografischen Standorten erfolgreich zu verwalten.
  2. Exponentielles Steigern der Anzahl gleichzeitig ausführbarer paralleler Datenjobs. 

Um dies zu erreichen, können Sie die bereits in cURL integrierten Funktionen ‘-x’ und ‘(- – proxy)’ nutzen. Hier ist ein Beispiel der Befehlszeile, mit der Sie den verwendeten Proxy in cURL integrieren können:

$ curl -x 026.930.77.2:6666 http://linux.com/

Im obigen Code-Snippet steht ‘6666’ als Platzhalter für die Portnummer, während ‘026.930.77.2’ die IP-Adresse ist. 

Gut zu wissen: cURL ist mit den meisten gängigen Proxy-Typen kompatibel, einschließlich HTTP, HTTPS und SOCKS.

Wie man den User-Agent ändert

User-Agents sind Merkmale, die es Ziel-Websites ermöglichen, das Gerät zu identifizieren, das Informationen anfordert. Eine Ziel-Website kann verlangen, dass Anfragende bestimmte Kriterien erfüllen, bevor die gewünschten Zieldaten zurückgegeben werden. Dies kann den Gerätetyp, das Betriebssystem oder den verwendeten Browser betreffen. In diesem Szenario möchten Datenerfassende den idealen ‘Kandidaten’ ihrer Ziel-Website emulieren. 

Nehmen wir an, die von Ihnen angesteuerte Website ‘bevorzugt’, dass anfragende Parteien Chrome als Browser verwenden. Um den gewünschten Datensatz mit cURL zu erhalten, muss man dieses ‘Browser-Merkmal’ wie folgt emulieren: 

curl -A "Goggle/9.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Chrome/103.0.5060.71" https://getfedora.org/

Web-Scraping mit cURL

Profi-Tipp: Achten Sie darauf, die Regeln einer Website einzuhalten, und versuchen Sie generell nicht, auf passwortgeschützte Inhalte zuzugreifen, was größtenteils illegal oder zumindest unerwünscht ist.

Sie können curl verwenden, um den repetitiven Prozess beim Web-Scraping zu automatisieren und mühsame Aufgaben zu vermeiden. Dafür benötigen Sie PHP. Hier ist ein Beispiel, das wir auf GitHub gefunden haben:


<?php

/**
 * @param string $url - the URL you wish to fetch.
 * @return string - the raw HTML response.
 */
function web_scrape($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

/**
 * @param string $url - the URL you wish to fetch.
 * @return array - the HTTP headers returned.
 */
function fetch_headers($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

// Example usage:
// var_dump(get_headers("https://www.example.com"));
// echo web_scrape('https://www.example.com/');

?>

Wenn Sie curl zum Scrapen einer Webseite verwenden, gibt es drei Optionen, die Sie nutzen sollten:

  • Initialisiert die Sitzung
curl_init($url)
  • Führt die Sitzung aus
curl_exec()
  • Schließt die Sitzung
curl_close()

Weitere Optionen, die Sie verwenden sollten, sind:

  • Legt die URL fest, die Sie scrapen möchten
CURLOPT_URL
  • Weist curl an, die gescrapte Seite als Variable zu speichern. (Dies ermöglicht es Ihnen, genau das zu erhalten, was Sie von der Seite extrahieren wollten.)
CURLOPT_RETURNTRANSFER

Fazit

Obwohl cURL ein leistungsstarkes Web-Scraping-Tool ist, erfordert es von Unternehmen wertvolle Entwicklerzeit sowohl bei der Datenerfassung als auch bei der Datenbereinigung. Genau hier kommt Bright Data ins Spiel. Bright Data, die weltweit führende Web-Dateninfrastruktur, bietet eine breite Palette an Produkten für Web-Scraping-Anforderungen. Zu den Bright Data-Produkten gehören die Web Scraper APIs, die speziell für Entwickler konzipiert sind, ein automatisierter Browser mit integrierter Website-Entsperrungsautomatisierung, ein Datensatz-Marktplatz für alle, die lieber genaue Daten erhalten als selbst zu scrapen, sowie 400M+ monthly zuverlässige Proxys.