Ich versuche, mit CURL ein vollständiges Website-Verzeichnis herunterzuladen. Der folgende Befehl funktioniert nicht:
curl -LO http://example.com/
Es gibt einen Fehler zurück: curl: Remote file name has no length!
.
Aber wenn ich das tue: curl -LO http://example.com/someFile.type
es funktioniert. Irgendeine Idee, wie man alle Dateien im angegebenen Verzeichnis herunterlädt? Vielen Dank.
wget --no-parent -r http://WEBSITE.com/DIRECTORY
und auch ohne--no-parent
- hat nicht funktioniert.HTTP kennt keine Verzeichnisse. Andere Schrägstriche als die ersten drei (
http://example.com/
) haben keine besondere Bedeutung, außer in Bezug auf..
relative URLs. Solange der Server nicht einem bestimmten Format folgt, gibt es keine Möglichkeit, „alle Dateien im angegebenen Verzeichnis herunterzuladen“.Wenn Sie die gesamte Site herunterladen möchten, sollten Sie alle Links auf der Hauptseite rekursiv durchlaufen. Curl kann es nicht, aber wget kann es. Dies funktioniert, wenn die Website nicht zu dynamisch ist (insbesondere werden keine Links angezeigt, die mit Javascript-Code erstellt wurden). Beginnen Sie mit
wget -r http://example.com/
und suchen Sie unter "Rekursive Abfrageoptionen" und "Rekursive Annahme- / Ablehnungsoptionen" im wget-Handbuch nach relevanteren Optionen (Rekursionstiefe, Ausschlusslisten usw.).Wenn die Website versucht, automatisierte Downloads zu blockieren, müssen Sie möglicherweise die Zeichenfolge des Benutzeragenten (
-U Mozilla
) ändern und ignorierenrobots.txt
(eine leere Datei erstellenexample.com/robots.txt
und die-nc
Option verwenden, damit wget nicht versucht, sie vom Server herunterzuladen).quelle
-e robots=off
. Alternativ können Sie das Herunterladen vermeiden, indem Sie es mit ablehnen-R "robots.txt"
.In diesem Fall
curl
ist NICHT das beste Werkzeug. Sie könnenwget
mit dem-r
Argument wie folgt verwenden:Dies ist die einfachste Form, und Sie können auch zusätzliche Argumente verwenden. Weitere Informationen finden Sie in
manpage
(man wget
).quelle
Das ist nicht möglich. Es gibt keine allgemein implementierte Standardmethode für einen Webserver, um den Inhalt eines Verzeichnisses an Sie zurückzugeben. Die meisten Server generieren einen HTML-Index eines Verzeichnisses, sofern dies konfiguriert ist. Diese Ausgabe ist jedoch weder Standard noch wird sie auf irgendeine Weise garantiert. Sie können diesen HTML-Code analysieren. Beachten Sie jedoch, dass sich das Format von Server zu Server ändert und nicht immer aktiviert ist.
quelle
wget
odercurl
?Sie können die Firefox-Erweiterung DownThemAll! Hiermit können Sie alle Dateien in einem Verzeichnis mit einem Klick herunterladen. Es ist auch anpassbar und Sie können angeben, welche Dateitypen heruntergeladen werden sollen. Dies ist der einfachste Weg, den ich gefunden habe.
quelle
Möglicherweise finden Sie hier eine Verwendung für einen Website-Ripper. Dadurch wird alles heruntergeladen und der Inhalt / die internen Links werden für die lokale Verwendung geändert. Eine gute finden Sie hier: http://www.httrack.com
quelle