So laden Sie mit wget herunter, ohne Links zu Parametern zu folgen

11

Ich versuche, zwei Websites zur Aufnahme auf eine CD herunterzuladen:

http://boinc.berkeley.edu/trac/wiki
http://www.boinc-wiki.info

Das Problem, das ich habe, ist, dass dies beide Wikis sind. Also beim Herunterladen mit zB:

wget -r -k -np -nv -R jpg,jpeg,gif,png,tif http://www.boinc-wiki.info/

Ich bekomme viele Dateien, weil es auch Links wie ...? Action = edit ...? Action = diff & version = ... folgt.

Kennt jemand einen Weg, um das zu umgehen?

Ich möchte nur die aktuellen Seiten, ohne Bilder und ohne Unterschiede usw.

PS:

wget -r -k -np -nv -l 1 -R jpg,jpeg,png,gif,tif,pdf,ppt http://boinc.berkeley.edu/trac/wiki/TitleIndex

Das hat bei Berkeley funktioniert, aber boinc-wiki.info macht mir immer noch Probleme: /

PPS:

Ich habe die anscheinend relevantesten Seiten mit:

wget -r -k -nv  -l 2 -R jpg,jpeg,png,gif,tif,pdf,ppt http://www.boinc-wiki.info
Krawattenkämpfer
quelle
Keine Notwendigkeit, den Beitrag zwischen Superuser und Serverfault zu wechseln serverfault.com/questions/156045/…
Bryan
Wo hätte ich es posten sollen?
Tie-Fighter
Das ist der richtige Ort. Es ist keine Serverfrage.
David Z
Trotzdem habe ich bei Serverfault die besseren Antworten bekommen;)
Tie-Fighter

Antworten:

5

Die neue Version von wget (v.1.14) löst all diese Probleme.

Sie müssen die neue Option verwenden --reject-regex=...., um Abfragezeichenfolgen zu verarbeiten.

Beachten Sie, dass ich das neue Handbuch mit diesen neuen Optionen nicht finden konnte. Sie müssen daher den Befehl help verwenden wget --help > help.txt

user3133076
quelle
4
wget --reject-regex '(.*)\?(.*)' http://example.com

( --reject-type posixstandardmäßig). Funktioniert wgetlaut anderen Kommentaren nur für neuere (> = 1.14) Versionen von .

Beachten Sie, dass Sie anscheinend --reject-regexnur einmal pro wgetAnruf verwenden können. Das heißt, Sie müssen |in einem einzelnen regulären Ausdruck verwenden, wenn Sie mehrere reguläre Ausdrücke auswählen möchten:

wget --reject-regex 'expr1|expr2|…' http://example.com
Skippy le Grand Gourou
quelle
Könnte bezüglich der Versionsanforderung zutreffen. Ich hatte v1.12 und die Option war nicht gültig. Nach dem Upgrade auf v1.15 war es.
Yunzen
Regex-Wechsel mit dem |Symbol ("Pipe") funktioniert bei GNU Wget 1.16 nicht.
Sampablokuper
0
wget -R "*?action=*"

Dies schließt alles aus, was ?action=in seinem Namen enthalten ist.

Daisetsu
quelle
3
"Beachten Sie auch, dass Abfragezeichenfolgen (Zeichenfolgen am Ende einer URL, die mit einem Fragezeichen ('?') Beginnen) nicht als Teil des Dateinamens für Akzeptanz- / Ablehnungsregeln enthalten sind, obwohl diese tatsächlich zum ausgewählten Namen beitragen Es wird erwartet, dass eine zukünftige Version von Wget eine Option bietet, die den Abgleich mit Abfragezeichenfolgen ermöglicht. "
Tie-Fighter
Hmm, das muss ich verpasst haben. Es sieht so aus, als ob Sie dies mit wget nicht tun können, wenn es nicht einmal weiß, dass es sich um verschiedene Dateien handelt. Ich schlage ein anderes Programm vor.
Daisetsu
-3

Ich würde sagen, dass das Leeching einer öffentlichen Wiki-Site eine schlechte Praxis ist, da dies eine zusätzliche Belastung darstellt.

Wenn ein Wiki öffentlich ist und die Websitebesitzer nichts dagegen haben, den Inhalt zu teilen, stellen sie normalerweise einen herunterladbaren Backend-Dump (Datenbank oder was auch immer) zur Verfügung. Sie würden also einfach das Datenpaket herunterladen, eine lokale Instanz derselben Wiki-Engine einrichten, die Daten darin importieren und eine lokale Kopie haben. Wenn Sie möchten, können Sie danach das Blutegel vor Ort durchführen.

vtest
quelle
es gibt -w Sekunden. zB -w 5. gnu.org/software/wget/manual/html_node/…
Barlop