Wie verhindere ich, dass wget Apache-Verzeichnislisten in unterschiedlicher Reihenfolge lädt?

Wie verhindere ich, dass wget Apache-Verzeichnislisten in unterschiedlicher Reihenfolge lädt?

Ich versuche, ein Verzeichnis mit diesem Befehl rekursiv herunterzuladen:

wget -r -l2 --no-parent -A "*.pdf" -nd -N -e robots=off http://…

Das Skript wird alle 15 Minuten ausgeführt, daher möchte ich die Anfragen so weit wie möglich reduzieren. Ich habe gesehen, dass es viele Anfragen gibt, ?C=M;O=Adie von den Schaltflächen zur Änderung der Verzeichnisreihenfolge stammen, wieName,DatumoderGröße(Beispiel). Wie kann ich diese Anfragen verhindern?

Antwort1

Wie ineine Antwortauf eine verwandte Frage,wget-Dokumentationsagt:

Beachten Sie auch, dass Abfragezeichenfolgen (Zeichenfolgen am Ende einer URL, die mit einem Fragezeichen („?“) beginnen) nicht als Teil des Dateinamens für Annahme-/Ablehnungsregeln eingeschlossen werden, obwohl diese tatsächlich zum gewählten Namen der lokalen Datei beitragen. Es wird erwartet, dass eine zukünftige Version von Wget eine Option bietet, die den Abgleich mit Abfragezeichenfolgen ermöglicht.

Sie müssen wahrscheinlich ein anderes Werkzeug verwenden, wie z. B.pavukoderhttp://www.httrack.com/. Diese beiden Programme bieten eine robustere Namensfilterung als wget.

Alternativ können Sie das Verzeichnis auch mit wget herunterladen und anschließend filtern.

find . -name '*\?' -delete
# Here is a less dangerous pattern that matches the string you provided more closely:
find . -name '*\??=?;?=?' -delete

Antwort2

Ich würde httrack verwenden, wenn Sie versuchen, ein Verzeichnis mit *.pdf-Dateien zu spiegeln. Ein Befehl wie dieser hat bei mir funktioniert:

 % httrack http://my.server.com/dir/with/pdfs/ +mime:text/html +*.pdf --update

Weitere Informationen zu httrack finden Sie unter den folgenden URLs:

Ich sollte einen großen Vorteil der Verwendung von httrack gegenüber wget erwähnen: httrack herunterlädt nur Dateien, die geändert/aktualisiert wurden.

verwandte Informationen