CodeGym /Kurse /Docker SELF /Verwendung von `curl` und `wget` zum Herunterladen von Da...

Verwendung von `curl` und `wget` zum Herunterladen von Dateien

Docker SELF
Level 8 , Lektion 4
Verfügbar

Verwendung von curl und wget zum Herunterladen von Dateien

1. Einführung in curl

Hast du je in einem Vorstellungsgespräch die Aufgabe bekommen, eine Datei aus dem Internet via Terminal herunterzuladen, und plötzlich festgestellt, dass du vergessen hast, wie das funktioniert? Heute lernen wir, wie man curl und wget verwendet – deine treuen Begleiter für die Arbeit mit Netzwerkdaten.

Diese Tools erlauben es dir, Webseiten herunterzuladen, Dateien zu speichern, HTTP-Anfragen zu senden, mit APIs zu arbeiten und sogar Automatisierungsskripte auszuführen. Wir schauen uns ihre Funktionen, Vorteile und typische Anwendungsfälle an.

curl ist ein Kommandozeilen-Tool zum Übertragen von Daten über Netzwerk-Protokolle. Die Stärke von curl liegt in seiner Flexibilität: Unterstützung von mehr als 20 Protokollen (HTTP, HTTPS, FTP, SCP und sogar SMTP). Laut Entwicklern ist es ein großartiges "Schweizer Taschenmesser" für das Arbeiten im Internet.

Grundlegende Syntax von curl

curl [Optionen] URL

Im Grunde genommen gibst du einfach den Befehl curl ein, gefolgt von der gewünschten URL – und voilà! Lass uns anschauen, wie das funktioniert.

Herunterladen einer Webseite

Angenommen, du möchtest die Startseite von Google herunterladen. Das machst du so:

curl http://www.google.com

Auf deinem Bildschirm siehst du den HTML-Code der Seite. Das ist ziemlich nützlich, wenn du die Struktur einer Website untersuchen oder etwas damit automatisieren möchtest.

Speichern des Inhalts in einer Datei

Falls der ganze Textstream auf deinem Bildschirm stört, kannst du das Ergebnis einfach in eine Datei speichern:

curl -o google.html http://www.google.com

Das Flag -o (output) sagt curl, dass wir die Ausgabe in eine Datei umleiten möchten. Jetzt ist der HTML-Code der Seite in google.html gespeichert. Lustig, oder? Gib die Datei deinem Freund und sag ihm, dass du "das ganze Internet heruntergeladen" hast.

Herunterladen einer Datei

Stell dir vor, du musst eine Datei aus dem Internet herunterladen (zum Beispiel eine .zip-Datei). Hier zeigt curl seine Stärke:

curl -O http://example.com/file.zip

Im Gegensatz zu -o speichert das Flag -O die Datei mit ihrem ursprünglichen Namen, der in der URL angegeben ist. Das ist praktisch, wenn du viele Dateien von derselben Quelle herunterlädst.

HTTP-Authentifizierung

Manchmal ist der Zugriff auf eine Datei oder eine API-Ressource durch Benutzername und Passwort geschützt. In diesem Fall verwende curl mit dem Flag -u:

curl -u username:password http://example.com/private-data

Das ist besonders nützlich für die Arbeit mit geschützten APIs, wie beispielsweise GitHub oder Docker Registry.

Herunterladen über eine API

Einer der coolsten Anwendungsfälle von curl ist die Arbeit mit APIs. Angenommen, du musst eine Anfrage an einen Server senden, der Daten im JSON-Format zurückgibt:

curl -X GET "https://api.exchangerate-api.com/v4/latest/USD"

Hier gibt das Flag -X die Methode der HTTP-Anfrage an (GET, POST, DELETE, usw.). Für die Automatisierung der Integration mit externen Services ist das ein echter Schatz.


2. Was ist wget?

Wenn curl ein Schweizer Taschenmesser ist, dann ist wget ein Bulldozer. Seine Hauptaufgabe ist das Herunterladen von Dateien. Der Hauptunterschied zu curl besteht darin, dass wget speziell für das zuverlässige Herunterladen großer Dateien entwickelt wurde und auch die Fortsetzung von Downloads unterstützt, was bei einer schlechten Verbindung sehr praktisch ist.

Grundsyntax von wget

wget [Optionen] URL

Einfaches Herunterladen einer Datei

wget http://example.com/file.zip

Dieser Befehl lädt die Datei herunter und speichert sie mit dem Originalnamen im aktuellen Verzeichnis. Einfach und effizient.

Speichern mit einem anderen Namen

Wenn dir der Originalname der Datei nicht gefällt, kannst du deinen eigenen Namen angeben:

wget -O newfile.zip http://example.com/file.zip

Download fortsetzen

Angenommen, du lädst eine riesige Datei herunter, aber die Verbindung bricht ab. Kein Problem: Verwende einfach das Flag -c (continue):

wget -c http://example.com/largefile.iso

wget setzt den Download an der Stelle fort, an der er unterbrochen wurde. Und das funktioniert sogar noch nach mehreren Tagen, wenn der Server diesen Modus unterstützt.

Eine ganze Website herunterladen

Ja, mit wget kannst du eine ganze Website (oder deren Kopie) herunterladen. Verwende einfach die Option --mirror:

wget --mirror http://example.com

Dieser Befehl lädt die Website herunter und behält die Verzeichnisstruktur bei. Jetzt hast du ein "Spiegelbild" der Website für die Offline-Nutzung.


3. Vergleich von curl und wget

Funktion curl wget
Unterstützung einer großen Anzahl von Protokollen Ja Nur HTTP/HTTPS und FTP
Automatische Wiederaufnahme von Downloads Nein (kann gescriptet werden) Ja
Arbeiten mit APIs Ja Nein
Einfache Dateiverwaltung Mittel Ausgezeichnet
Herunterladen ganzer Webseiten Nein Ja

Im Allgemeinen, wenn du mit APIs oder etwas Speziellem arbeiten musst, benutze curl. Wenn du hingegen Dateien herunterladen willst, ist wget die beste Option.


4. Praktische Anwendung

Datei herunterladen und verarbeiten

Kombinieren wir wget mit unseren Fähigkeiten zur Textverarbeitung:

wget -O data.txt http://example.com/data.txt
cat data.txt | grep "keyword" | awk '{print $2, $4}'

Hier haben wir eine Datei heruntergeladen, die Zeilen nach einem Schlüsselwort gefiltert und die benötigten Spalten extrahiert.

Arbeiten mit APIs

Wir laden Wechselkurse mit curl herunter und suchen die gewünschte Währung:

curl -s "https://api.exchangerate-api.com/v4/latest/USD" | grep "EUR"

Das ist nützlich, wenn du ein automatisiertes Währungsumtauschangebot erstellen möchtest.

Automatisierung von Updates

Stell dir vor, du musst jeden Tag eine aktualisierte Datei herunterladen. Hier ist ein Beispiel für ein einfaches Skript:

#!/bin/bash
wget -O updates.zip http://example.com/daily-updates.zip
unzip -o updates.zip -d /path/to/updates

Speichere das Skript und füge es in cron ein. Jetzt wird es automatisch ausgeführt – cool, oder?


5. Typische Fehler und Besonderheiten

Fehler 403 (Forbidden):

Das passiert, wenn der Server zusätzliche Header verlangt (z. B. User-Agent). So kannst du das beheben:

curl -A "Mozilla/5.0" http://example.com

Weiterleitungen:

Wenn der Server dich auf eine andere URL weiterleitet, füge das Flag -L bei curl hinzu:

curl -L http://example.com

SSL-Fehler:

Manchmal können wget oder curl über SSL meckern. Du kannst die Zertifikatsüberprüfung deaktivieren (aber das ist unsicher!):

wget --no-check-certificate https://example.com
curl -k https://example.com

Mit diesem starken Arsenal bist du bereit, das Internet über das Terminal zu erobern. Jetzt wird keine Datei oder API mehr vor dir sicher sein – Zeit, Downloads, Verarbeitung und Automatisierung in Angriff zu nehmen!

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION