Wie lade ich eine Dateiliste von einem Dateiserver herunter?

10

Wie würde ich eine Liste von Dateien von einem Dateiserver wie diesem herunterladen http://www.apache.org/dist/httpd/binaries/ ?

Ich nehme an, ich könnte wget verwenden, aber dann wird versucht, alle Links und auch die HTML-Datei abzurufen. Gibt es ein besseres Werkzeug, um dies zu erreichen?

BinaryMisfit
quelle
Nur um Ihre Frage zu klären: Sie möchten nur die Liste der Dateien, die vom Server heruntergeladen werden können, nicht (noch) die Dateien selbst?
Akira
Inwiefern funktioniert ein Befehl wie "wget ​​--no-verbose --spider --no-directory --recursive --level = 2 apache.org/dist/httpd/binaries " nicht für Sie? Wenn Sie genauer sein könnten, könnte das helfen
DaveParillo

Antworten:

12

Sie können angeben, welche Dateierweiterungen wgetbeim Crawlen von Seiten heruntergeladen werden sollen:

wget -r -A zip,rpm,tar.gz www.site.com/startpage.html

Dies wird eine rekursive Suche und nur Download - Dateien mit den durchführt .zip, .rpmund .tar.gzErweiterungen.

John T.
quelle
8

Angenommen, Sie möchten wirklich nur eine Liste der Dateien auf dem Server, ohne sie (noch) abzurufen:

%> wget -r -np --spider http://www.apache.org/dist/httpd/binaries/ 2> & 1 | awk -f filter.awk | uniq

während 'filter.awk' so aussieht

/^--.*-- http: \ / \ /.* [^ \ /] $ / {u = $ 3; }}
/ ^ Länge: [[: Ziffer:]] + / {print u; }}

dann müssen Sie möglicherweise einige Einträge wie herausfiltern

"http://www.apache.org/dist/httpd/binaries/?C=N;O=D"
Akira
quelle
0

Ref: http://blog.incognitech.in/download-files-from-apache-server-listing-directory/

Sie können folgenden Befehl verwenden:

wget --execute="robots = off" --mirror --convert-links --no-parent --wait=5 <website-url>

Erläuterung zu den einzelnen Optionen

  • wget: Einfacher Befehl zum Erstellen einer CURL-Anforderung und zum Herunterladen von Remote-Dateien auf unseren lokalen Computer.
  • --execute="robots = off": Dadurch wird die Datei robots.txt beim Crawlen durch Seiten ignoriert. 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-listingdie bedeutet:
    • -N: Dateien nicht erneut abrufen, es sei denn, sie sind neuer als lokal
    • -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: Stellen Sie Links in heruntergeladenem HTML oder CSS auf lokale Dateien
  • --no-parent: Steigen Sie nicht in das übergeordnete Verzeichnis auf
  • --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 können.

Viel Spaß beim Herunterladen: smiley:

Udit Desai
quelle