2017-12-05 2 views
0

Ich versuche regelmäßig einige Dateitypen zu archivieren, die auf einer Community-Website gehostet werden, wo unser Administrator seit Jahren MIA ist, falls er stirbt oder einfach nicht mehr für das Hosting zahlt.Was versuche ich, bestimmte Dateitypen mit wget herunterzuladen?

Ich bin in der Lage, alle Dateien, die ich brauche mit wget -r -np -nd -e robots=off -l 0 URL herunterladen, aber das lässt mich mit etwa 60.000 zusätzlichen Dateien zu verschwenden Zeit sowohl herunterladen und löschen.

Ich suche wirklich nur nach Dateien mit den Erweiterungen "tbt" und "zip". Wenn ich der Eingabe -A tbt,zip hinzufüge, lädt wget dann nur eine einzige Datei, "index.html.tmp". Diese Datei wird sofort gelöscht, da sie nicht mit dem angegebenen Dateityp übereinstimmt. Anschließend wird der Vorgang vollständig beendet, wobei wget ankündigt, dass der Vorgang abgeschlossen ist. Es wird nicht versucht, eine der anderen Dateien herunterzuladen, die erfasst werden, wenn das Flag -A nicht enthalten ist.

Was mache ich falsch? Warum werden die Dateitypen so angegeben, dass ich sie nach nur einer Datei abgeschlossen habe?

+0

Ich habe einige Leute gesehen, die [httrack] (https://www.httrack.com/) als Alternative zu "wget" für diese Art von Dingen empfehlen. – larsks

Antwort

0

Möglicherweise treffen Sie das gleiche Problem, das ich geschlagen habe, wenn ich versuche, etwas Ähnliches zu tun. Bei Verwendung von --accept bestimmt wget, ob eine Verknüpfung auf eine Datei oder ein Verzeichnis verweist, je nachdem, ob sie mit einer / endet.

Zum Beispiel sagen, dass ich ein Verzeichnis files genannt habe, und eine Webseite, die hat:

<a href="files">Lots o' files!</a> 

Wenn ich dies war beantragen mit wget -r, dann würde ich wget glücklich GET /files, sieht, dass es eine war HTML-Dokument, das eine Reihe von Links enthält, und weiterhin diese Links herunterladen.

Wenn ich jedoch -A zip meiner Kommandozeile und führen wget mit --debug, ich sehe:

appending ‘http://localhost:8080/files’ to urlpos. 
[...] 
Deciding whether to enqueue "http://localhost:8080/files". 
http://localhost:8080/files (files) does not match acc/rej rules. 
Decided NOT to load it. 

Mit anderen Worten, wget denkt, das eine Datei (kein Hinter /) und es doesn‘ t entsprechen unseren Akzeptanzkriterien, so dass es abgelehnt wird.

Wenn ich die Remote-Datei ändern, damit es wie ... ...

<a href="files/">Lots o' files!</a> 

sieht dann wget dem Link folgen und Dateien herunterladen, wie gewünscht. Ich glaube nicht, dass es eine großartige Lösung für dieses Problem gibt, wenn Sie wget verwenden müssen. Wie ich in meinem Kommentar erwähnt habe, gibt es andere Tools, die diese Situation eleganter behandeln können.

Es ist auch möglich, dass ein anderes Problem auftritt. Die Ausgabe von --debug zu Ihrer Kommandozeile verdeutlichen Dinge in diesem Fall.

Verwandte Themen