Wget ist ein kostenloses Dienstprogramm zum Herunterladen von Dateien aus dem Internet. Es erhält Daten aus dem Internet und speichert sie in einer Datei oder zeigt sie in Ihrem Terminal an. Dies ist buchstäblich auch das, was Webbrowser wie Firefox oder Chromium tun, außer dass sie standardmäßig rendern die Informationen in einem grafischen Fenster und erfordern normalerweise, dass ein Benutzer sie aktiv steuert. Das wget
Das Dienstprogramm ist so konzipiert, dass es nicht interaktiv ist, was bedeutet, dass Sie wget
skripten oder planen können um Dateien herunterzuladen, egal ob Sie an Ihrem Computer sitzen oder nicht.
Datei mit wget herunterladen
Sie können eine Datei mit wget
herunterladen indem Sie einen Link zu einer bestimmten URL bereitstellen. Wenn Sie eine URL angeben, die standardmäßig index.html
ist , dann wird die Indexseite heruntergeladen. Standardmäßig wird die Datei in eine gleichnamige Datei in Ihrem aktuellen Arbeitsverzeichnis heruntergeladen.
$ wget http://example.com
--2021-09-20 17:23:47-- http://example.com/
Resolving example.com... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to 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'
Sie können wget
machen Senden Sie die Daten an die Standardausgabe (stdout
) stattdessen mithilfe von --output-document
mit einem Bindestrich -
Zeichen:
$ wget http://example.com --output-document - | head -n4
<!doctype html>
<html>
<head>
<title>Example Domain</title>
Sie können das --output-document
verwenden Option (-O
kurz) um Ihren Download beliebig zu benennen:
$ wget http://example.com --output-document foo.html
Einen teilweisen Download fortsetzen
Wenn Sie eine sehr große Datei herunterladen, müssen Sie möglicherweise den Download unterbrechen. Mit dem --continue
(-c
kurz), wget
kann feststellen, wo der Download aufgehört hat, und die Dateiübertragung fortsetzen. Das heißt, wenn Sie das nächste Mal eine 4-GB-Linux-Distribution-ISO herunterladen, müssen Sie nie wieder zum Anfang zurückkehren, wenn etwas schief geht.
$ wget --continue https://example.com/linux-distro.iso
Laden Sie eine Folge von Dateien herunter
Wenn es sich nicht um eine große Datei, sondern um mehrere Dateien handelt, die Sie herunterladen müssen, wget
kann dir dabei helfen. Vorausgesetzt, Sie kennen den Speicherort und das Dateinamenmuster der Dateien, die Sie herunterladen möchten, können Sie die Bash-Syntax verwenden, um die Start- und Endpunkte zwischen einer Reihe von Ganzzahlen anzugeben, um eine Folge von Dateinamen darzustellen:
$ wget http://example.com/file_{1..4}.webp
Eine ganze Website spiegeln
Mit --mirror
können Sie eine ganze Site einschließlich ihrer Verzeichnisstruktur herunterladen Möglichkeit. Diese Option entspricht der Ausführung von --recursive --level inf --timestamping --no-remove-listing
, was bedeutet, dass es unendlich rekursiv ist, sodass Sie alles in der von Ihnen angegebenen Domäne erhalten. Je nachdem, wie alt die Website ist, kann das bedeuten, dass Sie viel mehr Inhalte erhalten, als Sie denken.
Wenn Sie wget
verwenden um eine Seite zu archivieren, dann die Optionen --no-cookies --page-requisites --convert-links
sind auch nützlich, um sicherzustellen, dass jede Seite frisch und vollständig ist und dass die Site-Kopie mehr oder weniger in sich geschlossen ist.
HTML-Header ändern
Protokolle, die für den Datenaustausch verwendet werden, haben viele Metadaten, die in die Pakete eingebettet sind, die Computer zur Kommunikation senden. HTTP-Header sind Komponenten des ersten Teils der Daten. Wenn Sie eine Website durchsuchen, sendet Ihr Browser HTTP-Anforderungsheader. Verwenden Sie den --debug
Option, um zu sehen, welche Header-Informationen wget
sendet bei jeder Anfrage:
$ wget --debug example.com
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: example.com
Connection: Keep-Alive
---request end---
Sie können Ihren Anforderungsheader mit --header
ändern Möglichkeit. Beispielsweise ist es manchmal nützlich, einen bestimmten Browser nachzuahmen, entweder zum Testen oder um schlecht codierte Websites zu berücksichtigen, die nur für bestimmte Benutzeragenten korrekt funktionieren.
So identifizieren Sie Microsoft Edge unter Windows:
$ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://example.com
Sie können sich auch als bestimmtes Mobilgerät ausgeben:
$ wget --debug \
--header="User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1" \
http://example.com
Antwortheader anzeigen
Auf die gleiche Weise, wie Header-Informationen mit Browser-Anfragen gesendet werden, sind Header-Informationen auch in Antworten enthalten. Sie können Antwortheader mit --debug
anzeigen Möglichkeit:
$ wget --debug example.com
[...]
---response begin---
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 188102
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Etag: "3147526947"
Server: ECS (sab/574F)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256
---response end---
200 OK
Registered socket 3 for persistent reuse.
URI content encoding = 'UTF-8'
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'
Antwort auf eine 301-Antwort
Ein Antwortcode von 200 bedeutet, dass alles wie erwartet funktioniert hat. Eine 301-Antwort hingegen bedeutet, dass eine URL dauerhaft an eine andere Stelle verschoben wurde. Es ist eine gängige Methode für einen Website-Administrator, Inhalte zu verschieben und dabei eine „Spur“ zu hinterlassen, damit Besucher des alten Standorts sie immer noch finden können. Standardmäßig wget
folgt Weiterleitungen, und das ist wahrscheinlich das, was Sie normalerweise wollen.
Sie können jedoch steuern, was wget
ist tut, wenn es auf eine 301-Antwort mit dem --max-redirect
stößt Möglichkeit. Sie können ihn auf 0
setzen keinen Weiterleitungen folgen:
$ wget --max-redirect 0 http://iana.org
--2021-09-21 11:01:35-- http://iana.org/
Resolving iana.org... 192.0.43.8, 2001:500:88:200::8
Connecting to iana.org|192.0.43.8|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.iana.org/ [following]
0 redirections exceeded.
Alternativ können Sie es auf eine andere Zahl setzen, um zu steuern, wie viele Weiterleitungen wget
folgt.
Erweitern Sie eine verkürzte URL
Der --max-redirect
Die Option ist nützlich, um sich verkürzte URLs anzusehen, bevor Sie sie tatsächlich besuchen. Gekürzte URLs können für Printmedien nützlich sein, in denen Benutzer nicht einfach eine lange URL kopieren und einfügen können, oder in sozialen Netzwerken mit Zeichenbeschränkungen (dies ist in einem modernen und quelloffenen sozialen Netzwerk wie Mastodon kein so großes Problem ). Allerdings können sie auch ein wenig gefährlich sein, weil ihr Ziel naturgemäß verborgen ist. Durch die Kombination von --head
Option, um nur die HTTP-Header und den --location
anzuzeigen Möglichkeit, das endgültige Ziel einer URL aufzuschlüsseln, können Sie in eine verkürzte URL schauen, ohne die vollständige Ressource zu laden:
$ wget --max-redirect 0 "https://bit.ly/2yDyS4T"
--2021-09-21 11:32:04-- https://bit.ly/2yDyS4T
Resolving bit.ly... 67.199.248.10, 67.199.248.11
Connecting to bit.ly|67.199.248.10|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://example.com/ [following]
0 redirections exceeded.
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Die vorletzte Ausgabezeile, beginnend mit Location , verrät das beabsichtigte Ziel.
Verwenden Sie wget
Wenn Sie einmal geübt haben, den Prozess des Erkundens des Internets als einen einzigen Befehl zu betrachten, wget
wird zu einer schnellen und effizienten Möglichkeit, benötigte Informationen aus dem Internet zu ziehen, ohne sich um eine grafische Oberfläche kümmern zu müssen. Um Ihnen zu helfen, es in Ihren üblichen Arbeitsablauf zu integrieren, haben wir einen Spickzettel mit dem üblichen wget
erstellt Verwendungen und Syntax, einschließlich einer Übersicht über die Verwendung zum Abfragen einer API. Laden Sie das Linux-wget
herunter Spickzettel hier.