Wget ist ein Befehlszeilen-Open-Source-Dienstprogramm zum Herunterladen von Dateien und Webseiten aus dem Internet. Es erhält Daten aus dem Internet und zeigt sie in Ihrem Terminal an oder speichert sie in einer Datei. Das Dienstprogramm wget ist nicht interaktiv. Sie können es durch Skripte optimal nutzen oder sogar Dateidownloads planen.
Typischerweise laden Webbrowser wie Firefox oder Chromium auch Dateien herunter, außer dass sie die Informationen standardmäßig in einem grafischen Fenster darstellen und erfordern, dass ein Benutzer mit ihnen interagiert. Alternativ verwenden andere Linux-Systembenutzer den curl-Befehl, um Daten von einem Netzwerkserver zu übertragen.
Der Artikel veranschaulicht, wie man den Befehl wget verwendet, um Webseiten und Dateien aus dem Internet herunterzuladen.
wget unter Linux installieren
So installieren Sie wget auf Ubuntu/Debian-basierten Linux-Systemen:
$ apt-get install wget
So installieren Sie Wget unter Red Hat/CentOS:
$ yum install wget
So installieren Sie wget auf Fedora:
$ dnf install wget
Herunterladen einer Datei mit dem Befehl wget
Sie können eine Datei mit wget herunterladen, indem Sie einen bestimmten Link zu einer URL angeben. Wenn Ihre URL standardmäßig index.html lautet, wird die Indexseite heruntergeladen. Standardmäßig wird der Inhalt in eine Datei mit demselben Dateinamen in Ihrem aktuellen Arbeitsverzeichnis heruntergeladen. Der wget-Befehl bietet auch mehrere Optionen, um die Ausgabe an less oder tail weiterzuleiten.
[#####@fedora ~]$ wget http://example.com | tail -n 6 --2021-11-09 12:06:02-- http://example.com/ Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946 Connecting to example.com (example.com)|93.184.216.34|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1256 (1.2K) [text/html] Saving to: ‘index.html.1’ index.html.1 100%[======================>] 1.23K --.-KB/s in 0s 2021-11-09 12:06:03 (49.7 MB/s) - ‘index.html.1’ saved [1256/1256]
Heruntergeladene Daten an die Standardausgabe senden
Sie können das -output-document mit einem Bindestrich – verwenden, um Ihre heruntergeladenen Daten an die Standardausgabe zu senden.
[#######@fedora ~]$ wget http://example.com --output-document - | head -n8 --2021-11-09 12:17:11-- http://example.com/ Resolving example.com (example.com)... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946 Connecting to example.com (example.com)|93.184.216.34|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1256 (1.2K) [text/html] Saving to: ‘STDOUT’ <!doctype html> 0%[ ] 0 --.-KB/s <html> <head> <title>Example Domain</title> <meta charset="utf-8" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> - 100%[======================>] 1.23K --.-KB/s in 0s 2021-11-09 12:17:12 (63.5 MB/s) - written to stdout [1256/1256]
Downloads unter einem anderen Dateinamen speichern
Sie können die Option –output-document oder -O verwenden, um einen anderen Ausgabedateinamen für Ihren Download anzugeben.
$ wget http://fosslinux.com --output-document foo.html $ wget http://fosslinux.com -O foofoofoo.html
Herunterladen einer Folge von Dateien
Wget kann mehrere Dateien herunterladen, wenn Sie den Speicherort und das Dateinamenmuster der Dateien kennen. Sie können die Bash-Syntax verwenden, um einen Bereich von Ganzzahlen anzugeben, um eine Folge von Dateinamen von Anfang bis Ende darzustellen.
$ wget http://fosslinux.com/filename_{1..7}.webp
Mehrere Seiten und Dateien herunterladen
Sie können mehrere Dateien mit dem Befehl wget herunterladen, indem Sie alle URLs angeben, die die herunterzuladenden Dateien enthalten.
$ wget URL1 URL2 URL3
Teilweises Herunterladen fortsetzen
Wenn Sie große Dateien herunterladen, kann es zu Unterbrechungen des Downloads kommen. Wget kann feststellen, wo Ihr Download gestoppt wurde, bevor es mit dem teilweisen Download fortfährt. Es ist praktisch, wenn Sie große Dateien wie eine Fedora 35 Linux-Distribution ISO herunterladen. Um einen Download fortzusetzen, verwenden Sie die Option –Continue oder -c.
$ wget --continue https://fosslinux.com/foss-linux-distro.iso
Rekursive Downloads mit dem Befehl wget verwalten
Verwenden Sie die Option –recursive oder -r, um rekursive Downloads mit dem Befehl wget zu aktivieren. Der rekursive wget-Modus durchsucht eine bereitgestellte Site-URL und folgt allen Links bis zur Standard- oder einer angegebenen maximalen Tiefe.
$ wget -r fosslinux.com
Standardmäßig beträgt die maximale rekursive Downloadtiefe 5. wget bietet jedoch die Option -l, um Ihre maximale Rekursionstiefe anzugeben.
$ wget -r -l 11 fosslinux.com
Sie können die unendliche Rekursion mit der Option „-l 0“ angeben. Beispielsweise lädt wget alle Dateien einer Website herunter, wenn Sie die maximale Tiefe auf Null setzen (-l 0).
Konvertieren von Links für die lokale Anzeige
Die –convert-links ist eine weitere wichtige wget-Option, die Links konvertiert, um sie für die lokale Anzeige geeignet zu machen.
$ wget -r l 3 --convert-links fosslinux.com
Herunterladen bestimmter Dateitypen
Sie können die Option -A mit dem Befehl wget verwenden, um bestimmte Dateitypen während rekursiver Downloads herunterzuladen. Verwenden Sie beispielsweise den folgenden wget-Befehl, um PDF-Dateien von einer Website herunterzuladen.
$ wget -A '*.pdf -r fosslinux.com
Beachten Sie, dass die rekursive maximale Abruftiefe standardmäßig auf 5 begrenzt ist.
Herunterladen von Dateien vom FTP-Server
Der Befehl wget kann nützlich sein, wenn Sie Dateien von einem FTP-Server herunterladen müssen.
$ wget --ftp-user=username --ftp-password=password ftp://192.168.1.13/foofoo.pdf
Im obigen Beispiel lädt wget „foofoo.pdf“ vom FTP-Server unter 192.168.1.10 herunter.
Sie können auch die rekursive Option -r mit dem FTP-Protokoll verwenden, um FTP-Dateien rekursiv herunterzuladen.
$ wget -r --ftp-user=username --ftp-password=pass ftp://192.168.1.13/
Festlegen der maximalen Downloadgröße mit dem Befehl wget
Sie können die maximale Downloadgröße während rekursiver Dateiabrufe mit der Flag-Option –quota festlegen. Sie können die Download-Größe in Byte (Standard), Kilobyte (Suffix k) oder Megabyte (Suffix m) angeben. Der Download-Vorgang wird abgebrochen, wenn das Limit überschritten wird.
$ wget -r --quota=1024m fosslinux.com
Beachten Sie, dass sich Download-Kontingente nicht auf das Herunterladen einer einzelnen Datei auswirken.
Festlegen der Download-Geschwindigkeitsbegrenzung mit dem Befehl wget
Sie können auch die Flag-Option wget –limit-rate verwenden, um die Download-Geschwindigkeit beim Herunterladen von Dateien zu begrenzen. Der folgende Befehl lädt beispielsweise die Datei „foofoo.tar.gz“ herunter und begrenzt die Download-Geschwindigkeit auf 256 KB/s.
$ wget --limit-rate=256k URL/ foofoo.tar.gz
Beachten Sie, dass Sie die gewünschte Downloadrate in Byte (ohne Suffix), Kilobyte (mit Suffix k) oder Megabyte (mit Suffix m) ausdrücken können.
Spiegeln einer Website mit dem Befehl wget
Mit der Option –mirror können Sie eine ganze Site herunterladen oder spiegeln, einschließlich ihrer Verzeichnisstruktur. Das Spiegeln einer Site ähnelt dem rekursiven Download ohne maximale Tiefe. Sie können auch die Option –recursive –level inf –timestamping –no-remove-listing verwenden, was bedeutet, dass sie unendlich rekursiv ist.
Sie können auch wget verwenden, um eine Website mit den Optionen –no-cookies –page-requisites –convert-links zu archivieren. Es lädt vollständige Seiten herunter und stellt sicher, dass die Kopie der Website in sich geschlossen und der ursprünglichen Website ähnlich ist.
$ wget --mirror --convert-links fosslinux.com $ wget -recursive --level inf --timestamping –no-remove-listing
Beachten Sie, dass beim Archivieren einer Website viele Daten heruntergeladen werden, insbesondere wenn die Website alt ist.
URLs aus einer Textdatei lesen
Der Befehl wget kann mit der Option -i mehrere URLs aus einer Textdatei lesen. Die Eingabetextdatei kann mehrere URLs enthalten, aber jede URL muss in einer neuen Zeile beginnen.
$ wget -i URLS.txt
Erweitern einer verkürzten URL
Sie können die Option wget –max-redirect verwenden, um verkürzte URLs vor Ihrem Besuch anzuzeigen. Verkürzte URLs sind für Printmedien oder in sozialen Netzwerken mit Zeichenbeschränkung unerlässlich. Darüber hinaus können verkürzte URLs auch verdächtig sein, da ihr Ziel standardmäßig verborgen ist.
Hinweis:Eine bessere Vorgehensweise besteht darin, die Optionen –head und –location zu kombinieren, um die HTTP-Header anzuzeigen und das endgültige URL-Ziel zu enträtseln. Es ermöglicht Ihnen, einen Blick auf eine verkürzte URL zu werfen, ohne die vollständige Ressource zu laden.
[######@fedora ~]$ wget --max-redirect 0 https://t.co/GVr5v9554B?amp=1 --2021-11-10 16:22:08-- https://t.co/GVr5v9554B?amp=1 Resolving t.co (t.co)... 104.244.42.133, 104.244.42.69, 104.244.42.5, ... Connecting to t.co (t.co)|104.244.42.133|:443... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://bit.ly/ [following] 0 redirections exceeded.
Hinweis:Das beabsichtigte Ziel wird in der Ausgabezeile angezeigt, die mit location.
beginntÄndern von HTML-Headern
HTTP-Header-Informationen sind eine der Metadateninformationen, die in die Pakete eingebettet sind, die Computer senden, um während des Datenaustauschs zu kommunizieren. Beispielsweise sendet Ihr Browser jedes Mal, wenn Sie eine Website besuchen, HTTP-Anforderungsheader. Sie können die Option –debug verwenden, um die Header-Informationen anzuzeigen, die wget für jede Anfrage an Ihren Browser sendet.
[#####@fedora ~]$ wget --debug fosslinux.com DEBUG output created by Wget 1.21.1 on linux-gnu. ---request begin--- GET / HTTP/1.1 User-Agent: Wget/1.21.1 Accept: */* Accept-Encoding: identity Host: fosslinux.com Connection: Keep-Alive ---request end--- HTTP request sent, awaiting response... ---response begin---
Antwortheader mit dem Befehl wget anzeigen
Sie können die Option –debug verwenden, um Antwort-Header-Informationen in Antwortantworten anzuzeigen.
[#####@fedora ~]$ wget --debug fosslinux.com ….. ---request end--- HTTP request sent, awaiting response... ---response begin--- HTTP/1.1 200 OK Server: nginx Date: Wed, 10 Nov 2021 13:36:29 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding X-Cache: HIT ---response end--- 200 OK
Auf einen 301-Antwortcode antworten
HTTP-Antwortstatuscodes sind für Webadministratoren unerlässlich. Normalerweise bedeutet ein 301-HTTP-Antwortstatuscode, dass eine URL dauerhaft an einen anderen Ort verschoben wurde. Standardmäßig folgt wget Weiterleitungen. Sie können jedoch die Option –max-redirect verwenden, um festzulegen, was wget tut, wenn eine 301-Antwort auftritt. Sie können es beispielsweise auf 0 setzen, um wget anzuweisen, keinen Weiterleitungen zu folgen.
[######@fedora ~]$ wget --max-redirect 0 https://fosslinux.com --2021-11-10 16:55:54-- https://fosslinux.com/ Resolving fosslinux.com (fosslinux.com)... 67.205.134.74, 2604:a880:400:d0::4bfe:a001 Connecting to fosslinux.com (fosslinux.com)|67.205.134.74|:443... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://www.fosslinux.com/ [following] 0 redirections exceeded.
Speichern der ausführlichen wget-Ausgabe in einer Protokolldatei
Standardmäßig zeigt wget eine ausführliche Ausgabe an das Linux-Terminal an. Sie können jedoch die Option -o verwenden, um alle Ausgabemeldungen in einer bestimmten Protokolldatei zu protokollieren.
$ wget -o foofoo_log.txt fosslinux.com
Der obige wget-Befehl speichert die ausführliche Ausgabe in der Datei „foofoo_log.txt“.
Wget-Befehl als Webspider ausführen
Sie können den Befehl wget mit der Option –spider als Webspider fungieren lassen. Im Wesentlichen lädt es keine Webseiten herunter, sondern prüft nur, ob sie vorhanden sind. Außerdem werden fehlerhafte URLs gemeldet.
$ wget -r --spider fosslinux.com
Wget-Befehl im Hintergrund ausführen
Sie können die Option -b / –background verwenden, um den wget-Prozess im Hintergrund auszuführen. Dies ist wichtig, wenn Sie große Dateien herunterladen, deren Fertigstellung länger dauert.
$ wget -b fosslinux.com/latest.tar.gz
Standardmäßig wird die Ausgabe des wget-Prozesses auf „wget-log“ umgeleitet. Sie können jedoch mit der Option -o eine andere Protokolldatei angeben.
Um den wget-Prozess zu überwachen, verwenden Sie den tail-Befehl.
$ tail -f wget-log
Wget im Debug-Modus ausführen
Wenn Sie wget im Debug-Modus ausführen, enthält die Ausgabe Remoteserverinformationen wie wget-Anforderungsheader und Antwortheader. Anforderungs- und Antwortheader sind für Systemadministratoren und Webentwickler unerlässlich.
$ wget --debug fosslinux.com
Ändern des User-Agents mit dem wget-Befehl
Sie können den standardmäßigen User Agent mit der Option –user-agent ändern. Beispielsweise können Sie „Mozilla/4.0“ als wget User-Agent verwenden, um fosslinux.com mit dem folgenden Befehl abzurufen.
$ wget --user-agent='Mozilla/4.0' fosslinux.com
Erfahren Sie mehr Tipps und Tricks zu wget auf den offiziellen wget-Handbuchseiten.
Abschluss
Der Linux-Befehl wget bietet eine effiziente Möglichkeit, Daten aus dem Internet abzurufen und herunterzuladen, ohne einen Browser zu verwenden. Genau wie der vielseitige Curl-Befehl kann wget jedes komplexe Download-Szenario wie große Dateidownloads, nicht interaktive Downloads und mehrere Dateidownloads handhaben.