cURL ist eines der am häufigsten verwendeten Befehlszeilentools zum Übertragen von Daten über das Internet. Es unterstützt viele Protokolle, darunter HTTP und HTTPS, und wird zum Web Scraping, Testen von APIs und Debuggen von Netzwerkverbindungen verwendet. Egal, ob Sie Daten von einer öffentlichen Website abrufen oder mit einer API interagieren müssen, cURL ist die Lösung.
Dieser Beitrag führt Sie durch das Senden von GET-Anfragen mit cURL. Wir unterteilen es in einfache Schritte mit Beispielen gängiger Szenarien wie dem Übergeben von Parametern, Headern und JSON-Antworten.
Inhaltsverzeichnis
- Was ist eine GET-Anfrage?
- Senden einer einfachen GET-Anfrage mit cURL
- GET-Anfrage mit Parametern
- Abrufen von HTTP-Headern mit GET-Anfragen
- Abrufen von JSON-Daten mit cURL
- Umgang mit Weiterleitungen in cURL GET-Anfragen
- Senden von Cookies mit einer GET-Anfrage
- Übersicht über die cURL GET-Anforderungsoptionen
- Abschließende Überlegungen
- Häufig gestellte Fragen
Was ist eine GET-Anfrage?
Eine GET-Anfrage ist die einfachste und am häufigsten verwendete HTTP-Methode, um Daten von einem Server abzurufen. Wenn Sie eine URL in Ihren Browser eingeben und die Eingabetaste drücken, sendet Ihr Browser eine GET-Anfrage an den Server, auf dem die Website gehostet wird. Der Server antwortet, indem er die angeforderten Daten wie HTML-Inhalte, Bilder oder JSON-Daten zurücksendet, und Ihr Browser zeigt sie an.
Im Gegensatz zu anderen HTTP-Methoden wie POST, die Daten an einen Server senden, dienen GET-Anfragen nur zum Abrufen von Ressourcen. Dies macht GET-Anfragen perfekt für:
- Abrufen von Webseiten.
- Zugriff auf API-Endpunkte zum Abrufen von Daten.
- Abrufen statischer Ressourcen wie Bilder oder Stylesheets.
Hier ist ein einfaches Beispiel einer GET-Anfrage mit cURL:
1 | curl https://crawlbase.com |
Dieser Befehl ruft das HTML der angegebenen Webseite ab und zeigt es in Ihrem Terminal an.
Senden einer einfachen GET-Anfrage mit cURL
Eine GET-Anfrage mit cURL ist die einfachste Möglichkeit, Daten von einem Server abzurufen. cURL verwendet standardmäßig GET, Sie müssen es also nicht angeben.
So können Sie eine einfache GET-Anfrage stellen:
1 | locken http://httpbin.org/get |
Dadurch wird der Inhalt angefordert von https://example.com
. Der Server antwortet mit der Ressource, normalerweise HTML oder andere Daten, die in Ihrem Terminal angezeigt werden.
Um die Ausgabe in einer Datei zu speichern, anstatt sie auf dem Terminal auszudrucken, verwenden Sie den -o
Option:
1 | curl -o output.html https://example.com |
Wichtige Punkte:
- Verwenden Sie die
curl
gefolgt von der URL, um eine einfache GET-Anfrage zu stellen. - Fügen Sie
-o
Flag, um die Antwort in einer Datei zu speichern.
Dies ist Ihr Ausgangspunkt zum Abrufen von Daten von Websites oder APIs. Jetzt sehen wir uns an, wie GET-Anfragen mit Parametern gesendet werden.
GET-Anfrage mit Parametern
Manchmal müssen Sie in Ihrer GET-Anfrage Parameter übergeben, um dem Server weitere Daten zu übermitteln. Es gibt zwei Möglichkeiten, Parameter zu übergeben:
Verwendung der -G
und -d
Optionen
Mit der Option -G können Sie Daten mit einer GET-Anfrage senden, und mit der Option -d geben Sie die Parameter an. Hier ist ein Beispiel:
1 | curl -G -d „param1=wert1“ -d „param2=wert2“ http://httpbin.org/get |
In diesem Fall param1=value1
und param2=value2
sind die Parameter, die als Abfragezeichenfolgen an den Server gesendet werden.
Anhängen von Parametern an die URL
Sie können Parameter auch direkt an die URL anhängen. So geht's:
1 | curl 'http://httpbin.org/get?param1=value1¶m2=value2' |
In diesem Fall Parameter param1
und param2
werden der URL nach dem ?
und getrennt durch &
.
Beide Methoden verarbeiten die Parameter und geben die Daten zurück. Die Wahl liegt bei Ihnen, aber beide führen zum gleichen Ergebnis.
Abrufen von HTTP-Headern mit GET-Anfragen
Wenn Sie mit cURL ein GET ausführen, können Sie neben dem Antworttext auch die HTTP-Header abrufen. HTTP-Header sind sehr nützlich, um Informationen über die Antwort, den Servertyp, den Inhaltstyp und mehr zu erhalten.
Um HTTP-Header in die Antwort einzuschließen, verwenden Sie die -i
or --include
Option:
1 | curl -i http://httpbin.org/headers |
Dieser Befehl gibt sowohl den Hauptteil der Antwort als auch die HTTP-Header zurück. Wenn Sie alternativ nur die Header ohne den Hauptteil möchten, verwenden Sie den --head
Option:
1 | Locke --ganzer http://httpbin.org/headers |
Dies ist nützlich, wenn Sie nur Metadaten zur Anfrage und nicht den eigentlichen Inhalt benötigen.
Abrufen von JSON-Daten mit cURL
Um JSON-Daten mit cURL von einem Server abzurufen, können Sie cURL mitteilen, dass Sie die Antwort in JSON wünschen. Dies ist praktisch, wenn Sie mit APIs arbeiten, die Daten in JSON zurückgeben.
Um JSON-Daten anzufordern, verwenden Sie das -H
Option zum Festlegen der Accept
Kopfzeile zu application/json
:
1 | curl-H „Akzeptieren: application/json“ http://httpbin.org/get |
Damit teilen Sie dem Server mit, dass Sie die Antwort im JSON-Format erwarten. Wenn der Server dies unterstützt, erhalten Sie eine Antwort im JSON-Format, die Sie für die weitere Verarbeitung verwenden können.
Umgang mit Weiterleitungen in cURL GET-Anfragen
Wenn Sie GET-Anfragen mit cURL stellen, kann der Server eine Weiterleitung zu einer anderen URL zurückgeben. cURL folgt Weiterleitungen standardmäßig nicht. Um der Weiterleitung zu folgen, verwenden Sie die -L
or --location option
.
So verwenden Sie es:
1 | curl -L http://httpbin.org/redirect-to?url=http://httpbin.org/get |
Dadurch wird die Weiterleitung befolgt und der Inhalt von der neuen URL abgerufen. Nützlich beim Arbeiten mit Websites oder APIs, die Weiterleitungen senden (Statuscodes 301 oder 302).
Senden von Cookies mit einer GET-Anfrage
Einige Websites erfordern, dass Sie Cookies mit Ihrer GET-Anfrage senden, um Sitzungen aufrechtzuerhalten oder Benutzeraktivitäten zu verfolgen. Sie können Cookies mithilfe der -b
or --cookie
Option in cURL.
So senden Sie Cookies mit einer GET-Anfrage:
1 | curl -b "Benutzername=JohnDoe; Sitzungs-ID=12345" http://httpbin.org/cookies |
In diesem Beispiel werden die Cookies username
und sessionId
werden zusammen mit der GET-Anfrage gesendet. Sie können Cookies auch aus einer Datei bereitstellen:
1 | curl -b cookies.txt http://httpbin.org/cookies |
Dies ermöglicht Ihnen die Interaktion mit Websites, die Benutzersitzungen, Anmeldungen oder andere Cookie-basierte Daten erfordern.
Übersicht über die cURL GET-Anforderungsoptionen
Hier sind einige wichtige cURL-Optionen, die Sie mit GET-Anfragen verwenden können:
In dieser Tabelle sind die wichtigsten cURL-Optionen zusammengefasst, mit denen Sie GET-Anfragen an Ihre Anforderungen anpassen können.
Abschließende Überlegungen
cURL ist ein großartiges Tool zum Senden von GET-Anfragen und Abrufen von Daten von Webservern. Sie können Webinhalte abrufen, Parameter verarbeiten, Cookies verwalten, Weiterleitungen folgen und mit APIs arbeiten. Egal, ob Sie Daten scrapen oder Aufgaben automatisieren, cURL macht es einfach und flexibel.
Sobald Sie die GET-Anfragen und -Optionen von cURL beherrschen, können Sie mit Webressourcen interagieren und die benötigten Daten abrufen. Mit etwas Übung können Sie cURL für alle Ihre Web Scraping- und Automatisierungsprojekte verwenden. Es ist ein Muss in Ihrem Werkzeugkasten.
Häufig gestellte Fragen
F: Was ist eine cURL-GET-Anfrage?
Eine cURL GET-Anfrage wird verwendet, um Daten von einem Server abzurufen. Sie sendet eine HTTP-Anfrage an die angegebene URL und erhält die Antwort des Servers, die eine Webseite, JSON-Daten oder eine andere Ressource sein kann. Dies wird für Web Scraping, API-Interaktion und das Testen von Webressourcen verwendet.
F: Wie sende ich Parameter mit einer GET-Anfrage in cURL?
Sie können Parameter in einer GET-Anfrage senden, indem Sie sie entweder an die URL anhängen oder den -G
und -d
Optionen.
- Beispiel mit Parametern in der URL:
curl 'http://example.com/data?param1=value1¶m2=value2'
- Beispiel mit
-G
und-d
:curl -G -d "param1=value1" -d "param2=value2" http://example.com/data
F: Kann ich JSON-Daten mit cURL abrufen?
Ja, Sie können JSON-Daten abrufen, indem Sie Folgendes festlegen: Accept: application/json
Header in Ihrer cURL-Anfrage.
Beispiel:curl -H "Accept: application/json" http://example.com/data
Dies weist den Server an, Daten im JSON-Format zurückzugeben, sofern dieses unterstützt wird.