Wget-Verzeichnisoptionen

Wget-Verzeichnisoptionen

Ich habe das Wget-Handbuch gelesen, aber leider scheint es mein Problem nicht zu lösen. Daher wäre ich äußerst dankbar, wenn mir jemand ein wenig helfen könnte.

Wir haben eine Website, (sagen wir) website.com, die direkt auf (sagen wir) website.com/1/, website.com/2/, … usw. verlinkt.

Jetzt verlinkt jede Seite website.com/r/, wobei r eine Ganzzahl ist, auf eine Reihe von PDF-Dokumenten. Anstatt sie unter website.com/r/doc-i.pdf zu finden – was praktisch wäre – sind sie alle unter website.com/files/doc-i.pdf zu finden.

Wenn ich den Befehl ausführe wget -r -l 2 -A pdf website.com, erhalte ich daher natürlich einen großen Ordner mit dem Namen „Dateien“, der alle darin enthaltenen PDF-Dokumente enthält.

Mir wäre es jedoch viel lieber, wenn sie in verschiedenen Ordnern mit den Namen 1, 2, ..., n organisiert wären, die der Seite entsprechen, von der sie heruntergeladen wurden. Da ich insgesamt etwa 10.000 PDF-Dateien herunterladen werde, möchte ich dies lieber nicht manuell tun müssen.

Wie weise ich Wget also an, die Dateien nicht nach der Verzeichnisstruktur der Website zu organisieren, sondern nach dem Weg, der zum Abrufen der Datei erforderlich war?

Ich hoffe, meine Erklärung ist klar und es ist nicht zu schwierig, dies zu erreichen.

Antwort1

(ungetestet) Folgendes muss noch etwas angepasst werden, ist nur eine allgemeine Idee:

### get level1
wget -r -l  website.com/      

#### for each html file otained,
for a in $(find website.com -name '*.html' )
do 
  ### get level 2 but prefix it with the base name
  b=$(basename $a)
  wget -P $b -r -l 1 -A pdf http://$a 
done
  • wahrscheinlich muss der Fund noch etwas optimiert werden
  • vielleicht etwas hinzufügen, mv $b/website.com/files FINAL/$bum die Pegel zu reduzieren

verwandte Informationen