it-swarm.com.de

Verzeichnisliste über http abrufen

Es gibt ein Verzeichnis, das über das Netz bereitgestellt wird und das ich überwachen möchte. Sein Inhalt besteht aus verschiedenen Softwareversionen, die ich verwende, und ich möchte ein Skript schreiben, das ich ausführen kann, um zu überprüfen, was dort vorhanden ist, und alles, was neuer ist, als das, was ich bereits habe, herunterzuladen. 

Gibt es eine Möglichkeit, beispielsweise mit wget oder so etwas, um eine Verzeichnisliste zu erhalten. Ich habe versucht, wget für das Verzeichnis zu verwenden, was mir HTML gibt. Gibt es eine Möglichkeit, eine einfache Liste abzurufen, die ls enthält, um das HTML-Dokument nicht analysieren zu müssen?

12
ajwood

Ich habe gerade einen Weg gefunden, es zu tun:

$ wget --spider -r --no-parent http://some.served.dir.ca/

Es ist ziemlich wortreich, also müssen Sie grep ein paar Mal durchblättern, je nachdem, was Sie suchen, aber die Informationen sind alles vorhanden. Es sieht so aus, als würde es in stderr gedruckt, also 2>&1 anhängen, damit grep dabei ist. Ich griff nach "\ .tar\.gz", um alle Tarballs zu finden, die die Site zu bieten hatte.

Beachten Sie, dass wget temporäre Dateien in das Arbeitsverzeichnis schreibt und die temporären Verzeichnisse nicht bereinigt. Wenn dies ein Problem ist, können Sie in ein temporäres Verzeichnis wechseln: 

$ (cd /tmp && wget --spider -r --no-parent http://some.served.dir.ca/)
22
ajwood

Folgendes ist nicht rekursiv, aber es hat für mich funktioniert:

$ curl -s https://www.kernel.org/pub/software/scm/git/

Die Ausgabe ist HTML und wird in stdout geschrieben. Im Gegensatz zu wget wird nichts auf die Festplatte geschrieben.

-s (--silent) ist beim Pipe der Ausgabe relevant, insbesondere innerhalb eines Skripts, das nicht laut sein darf.

Denken Sie daran, wann immer möglich ftp oder http anstelle von https zu verwenden.

2
A-B-B

Was möchten Sie am besten mit FTP, nicht mit HTTP.

HTTP hat kein Konzept für Verzeichnislisten, FTP dagegen.

Die meisten HTTP-Server erlauben keinen Zugriff auf Verzeichnislisten, und diejenigen, die dies tun, tun dies als eine Funktion des Servers und nicht als HTTP-Protokoll. Für diese HTTP-Server entscheiden sie sich, eine HTML-Seite für den menschlichen Verbrauch und nicht Maschinenverbrauch zu erstellen und zu senden. Sie haben keine Kontrolle darüber und hätten keine andere Wahl, als den HTML-Code zu analysieren.

FTP ist für den Maschinenverbrauch ausgelegt, insbesondere durch die Einführung der Befehle MLST und MLSD, die den mehrdeutigen Befehl LIST ersetzen.

1
Remy Lebeau

Wenn es von http bedient wird, gibt es keine Möglichkeit, eine einfache Verzeichnisliste zu erhalten. Die Liste, die Sie beim Durchsuchen sehen, wird von dem Webserver als HTML-Seite generiert. Alles, was Sie tun können, ist diese Seite zu parsen und die Informationen zu extrahieren.

1
Optimal Cynic

Sie können IDM (Internet Download Manager) verwenden
Ein Hilfsprogramm namens "IDM SITE GRABBER" gibt die URLs http/https Ein und lädt alle Dateien und Ordner vom http/https - Protokoll für Sie herunter.

0
babak

AFAIK, aus Sicherheitsgründen gibt es keine Möglichkeit, eine solche Verzeichnisliste zu erhalten. Es ist ziemlich glücklich, dass Ihr Zielverzeichnis die HTML-Auflistung enthält, da Sie es analysieren und neue Downloads finden können.

0
Samuel