Wget
Diese Seite behandelt das Kommando Wget, welches zum Holen von Dateien über HTTP, HTTPS und FTP dient. Es ist ein nicht-interaktives Kommandozeilen-Werkzeug, wodurch es zur Verwendung in Skripts, Cronjobs, Terminals ohne X uvm. geeignet ist.
Deutsche Hilfe
Mit folgendem Befehl bekommt man unter einer deutschen Umgebung eine deutsche Erklärung aller Kommandozeilen-Optionen angezeigt.
user@debian:~$ wget --help
User-Agent
HTTP ermöglicht mit der User-Agent Zeile im Header, dass sich Client-Programme selbst und die Version dem Server Bekanntgeben können. Wget gibt sich als Wget/VERSION aus. Einige Webseiten blockieren wget, da diese es als Robot, Spider, Crawler etc. einstufen, und liefern an diesen User-Agent keine Seiten aus.
Den User-Agent ändern
Um den User-Agent von wget abzuändern, gibt man mit der Kommandozeilen-Option -U, --user-agent einen anderen an.
user@debian:~$ wget -U "agent-string" http://example.net/path/to/file.html
Will man den User-Agent dauerhaft abändern, trägt man diesen in die Konfigurationsdatei ein.
user@debian:~$ cat $HOME/.wgetrc
user_agent =
Hinweis: Ein leerer Wert veranlasst wget, keinen User-Agent-Header im HTTP-Request zu senden. |
Login
Muss man sich auf einer Webseite einloggen, kann man Benutzernamen und Passwort über die Kommandozeile mitgeben.
user@debian:~$ wget --user=USER --password=PASS URL
Verlangt ein FTP-Server nach einem Login, ist der Befehl leicht modifiziert.
user@debian:~$ wget --ftp-user=USER --ftp-password=PASS URL
Dauerhafte Logins werden in die Konfigurationsdatei .netrc eintragen.
Hinweis: Eine URL erlaubt auch dass direkte Angeben eines Login:
http://USER:PASS@example.net |
Proxy
Wget wertet hier zuerst die Variablen in der Konfigurationsdatei .wgetrc und danach die Umgebungsvariablen aus.
Folgende Variablen stehen zur Verfügung:
http_proxy
https_proxy
ftp_proxy
Ein Login am Proxy wird über die Optionen --proxy-user=USER und --proxy-password=PASS angeben.
Ausnahmen
Über die no_proxy Variable können durch Komma getrennt Domains festgelegt werden, für die niemals ein Proxy genutzt werden soll. Mit der Variable use_proxy = no kann die Nutzung von Proxys ganz deaktiviert werden.
Soll einmalig kein Proxy genutzt werden, ruft man wget mit der Kommandozeilen-Option --no-proxy auf.
Die robots.txt-Datei
Mit der robots.txt können Webseiten-Betreiber Spider und Crawler bitten, Teile ihrer Webseite von der Indizierung auszuschließen. Eine bessere Erklärung zur robots.txt-Datei bietet Wikipedia. Wget hält sich per default an die Anweisung in der robots.txt, dies kann jedoch mit der Option -e robots=off unterbunden werden:
user@debian:~$ wget -r -l0 --no-parent -e robots=off http://www.example.net/dir/
(Der Aufruf ist dem Beispiel Rekursives Herunterladen vorweggenommen)
Rekursives Herunterladen
Folgendes Beispiel lädt eine URL rekursiv in das aktuelle Verzeichnis. Wobei hier mit --no-parent nicht in das übergeordnete Verzeichnis gewechselt wird.
user@debian:~$ wget -r -l0 --no-parent http://www.example.net/dir/
Eine Erweiterung des obigen Aufrufs stellt --accept="png,ogg,ps" dar, womit man eine Komma-unterteilte Liste der zu ladenden Dateiendungen angeben kann. Diese fungiert dann wie ein Filter. Das Gegenstück ist --reject, womit Dateiendungen ausgelassen werden können.