Verwenden Sie wget
stattdessen. Sie können es mit installieren, brew install wget
wenn Sie Homebrew oder sudo port install wget
MacPorts installiert haben.
Verwenden Sie zum Herunterladen von Dateien aus einer Verzeichnisliste -r
(rekursiv) -np
(folgen Sie keinen Links zu übergeordneten Verzeichnissen) und -k
stellen Sie sicher, dass Links in heruntergeladenem HTML oder CSS auf lokale Dateien verweisen (credit @xaccrocheur).
wget -r -np -k http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/
Andere nützliche Optionen:
-nd
(keine Verzeichnisse): Alle Dateien in das aktuelle Verzeichnis herunterladen
-e robots.off
: robots.txt-Dateien ignorieren, robots.txt-Dateien nicht herunterladen
-A png,jpg
: Akzeptiere nur Dateien mit den Endungen png
oderjpg
-m
(Spiegel): -r --timestamping --level inf --no-remove-listing
-nc
, --no-clobber
: Download überspringen, wenn Dateien vorhanden sind
wget -r -np -k http://your.website.com/specific/directory
. Der Trick besteht darin-k
, die Verknüpfungen (Bilder usw.) für die lokale Anzeige zu konvertieren.brew
undport
funktioniert nicht für mich, wget zu installieren. Was soll ich machen?-k
funktioniert nicht immer. Wenn Sie beispielsweise zwei Links haben, die auf dieselbe Datei auf der Webseite verweisen, die Sie rekursiv erfassen möchten,wget
scheint nur der Link der ersten Instanz konvertiert zu werden, nicht der zweite.curl
Wenn Sie nur einzelne Webseiten-Dateien lesen können, ist die Anzahl der Zeilen, die Sie erhalten, der Verzeichnisindex (den Sie auch in Ihrem Browser sehen, wenn Sie zu dieser URL gehen). Um zu benutzencurl
und einige Unix-Tools zu zaubern, um die Dateien zu bekommen, könnten Sie so etwas wie verwendenDadurch werden alle Dateien in das aktuelle Verzeichnis verschoben.
Für detailliertere Anforderungen (einschließlich des Abrufens einer Reihe von Dateien von einer Site mit Ordnern / Verzeichnissen) ist
wget
(wie bereits in einer anderen Antwort vorgeschlagen) die bessere Option.quelle
xmllint --html --xpath '//a/@href'
ist wahrscheinlich ein besserer Parser alsgrep
.Ref: http://blog.incognitech.in/download-files-from-apache-server-listing-directory/
Sie können folgenden Befehl verwenden:
Erklärung zu den einzelnen Optionen
wget
: Einfacher Befehl, um CURL-Anforderungen zu stellen und entfernte Dateien auf unseren lokalen Computer herunterzuladen.--execute="robots = off"
: Dies ignoriert die robots.txt-Datei beim Crawlen durch Seiten. Es ist hilfreich, wenn Sie nicht alle Dateien erhalten.--mirror
: Diese Option spiegelt im Wesentlichen die Verzeichnisstruktur für die angegebene URL wider. Es ist eine Abkürzung für-N -r -l inf --no-remove-listing
die bedeutet:-N
: Dateien nur dann erneut abrufen, wenn sie neuer als lokal sind-r
: Geben Sie den rekursiven Download an-l inf
: maximale Rekursionstiefe (inf oder 0 für unendlich)--no-remove-listing
: Entfernen Sie keine .listing-Dateien--convert-links
: Links in heruntergeladenem HTML oder CSS verweisen auf lokale Dateien--no-parent
: Nicht in das übergeordnete Verzeichnis aufsteigen--wait=5
: Warten Sie zwischen den Abrufen 5 Sekunden. Damit wir den Server nicht verprügeln.<website-url>
: Dies ist die Website-URL, von der die Dateien heruntergeladen werden.Viel Spaß beim Herunterladen: smiley:
quelle
Sie können httrack verwenden, das für Windows / MacOS verfügbar und über Homebrew installierbar ist.
quelle
Für diejenigen von uns, die lieber eine Anwendung mit einer grafischen Benutzeroberfläche verwenden möchten , gibt es das kostengünstige Shareware-Programm DeepVacuum für Mac OS X , das
wget
benutzerfreundlich implementiert wird und eine Liste von Voreinstellungen enthält, die für häufig benötigte Aufgaben geeignet sind. Sie können auch Ihre eigenen benutzerdefinierten Konfigurationen als Voreinstellungen speichern.quelle