Wie lade ich rekursiv ein gesamtes Webverzeichnis herunter?


13

Ich habe ein Webverzeichnis, das viele Ordner und viele Unterordner enthält, die Dateien enthalten.

Ich muss alles mit wget oder bash herunterladen.

linux  bash  wget 

Antworten:


17

Versuchen Sie: wget -rund sehen Sie, ob das funktioniert.


10

Der beste Weg ist:

wget -m <url>

Welches ist die Abkürzung für wget "Spiegel":

  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.

9
$ wget \
 --recursive \
 --no-clobber \
 --page-requisites \
 --html-extension \
 --convert-links \
 --restrict-file-names=windows \
 --domains website.org \
 --no-parent \
     www.website.org/tutorials/html/

Dieser Befehl lädt die Website www.website.org/tutorials/html/ herunter.

Die Optionen sind:

  • --recursive: Laden Sie die gesamte Website herunter.
  • --domains website.org: Folgen Sie keinen Links außerhalb von website.org.
  • --no-parent: Folgen Sie keinen Links außerhalb der Verzeichnis-Tutorials / html /.
  • --Seitenanforderungen: Holen Sie sich alle Elemente, aus denen die Seite besteht (Bilder, CSS usw.).
  • --html-Erweiterung: Speichern Sie Dateien mit der Erweiterung .html.
  • --convert-links: Konvertiert Links so, dass sie lokal und offline funktionieren.
  • --restrict-file-names = windows: Ändert die Dateinamen so, dass sie auch unter Windows funktionieren.
  • --no-clobber: Überschreibt keine vorhandenen Dateien (wird verwendet, wenn der Download unterbrochen und fortgesetzt wird).

Link zur Quelle

Oder probieren Sie die Lösung von Ubuntu.


6

wget --recursive(oder was auch immer) hat bei mir nicht funktioniert (ich bin auf CentOS). lftperledigt:

 lftp -c "open http://your.server/path/to/directory/; mirror"

1
Die "was auch immer" -Flaggen sind ziemlich wichtig ... ja, die Flaggen von wget sind etwas übertrieben, aber was erwarten Sie von einem Schweizer Taschenmesser?
vonbrand

1
lftp löste das Problem der "ungültigen Zeichenkodierung", mit dem ich beim rekursiven Herunterladen von wget konfrontiert war, wenn Dateinamen europäische Zeichen wie äöå enthielten.
Ajaaskel


0

Sie haben ein Webverzeichnis? Befindet es sich auf einem Remotecomputer und Sie können nur über HTTP darauf zugreifen, oder haben Sie Shell-Zugriff? Ihre Erwähnung von Bash impliziert Shell-Zugriff, es sei denn, Sie möchten wget über die Bash-Eingabeaufforderung verwenden.

Wget ist nicht immer sehr effizient. Wenn Sie also Shell-Zugriff auf den Computer haben, auf dem sich das Webverzeichnis befindet, und Sie es herunterladen möchten, können Sie dies tun

$ tar cjf webdir.tar.bz2 webdir 

und übertragen Sie dann das Archiv mit ftp oder scp.


Ich weiß nicht, warum all die verwirrenden Fragen hier notwendig waren, aber das habe ich letztendlich getan, weil die Serverkonfiguration es mir nicht erlaubte, das Verzeichnis zu überprüfen.
Stack Underflow

0

Sie können auch Folgendes versuchen, wenn Sie ein FTP-Konto haben:

lftp USER:PASSWORD@FTPSERVER -e "mirror&&exit"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.