ubuntuusers.de

simpelster "web crawler"-shell script mit wget/curl

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

kuckuck78

Anmeldungsdatum:
9. Juni 2011

Beiträge: 20

Wie würde eine sehr einfach Implementation davon aussehen?

Ausschließliches Ziel sind Wiki-Seiten, die mit dokuwiki erstellt worden sind. Es bietet die Möglichkeit mittels der export-Funktion, UTF8-txt-Dateien zu bekommen:

wget http://www.dokuwiki.org/export?do=export_raw

Während http://www.dokuwiki.org/ und ?do=export_raw konstant bleiben, ändern sich der Seitenname: export bzw. der Pfad: knowledgebase/old/cooking

Doch wie würde ich diese bekommen? Die Wiki ist nicht besonders umfangreich, doch gerade groß genug, dass ich das nicht per Hand machen möchte.

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Wohnort: Germany

Wenn du die Pfade + Dateinamen hast, dann so:

http://www.unix.com/shell-programming-scripting/72666-wget-loop.html

Wenn nicht, dann probiere mal (geht wahrscheinlich so nicht):

for i in *; do wget http://www.dokuwiki.org/$i?do=export_raw; done

Du bräuchtest wohl eher sowas wie im Link, nur eben mit einem Befehl für die Dateiliste statt cat datei.

Du könntest wget aber auch so versuchen:

1
2
wget -p http://www.dokuwiki.org/export?do=export_raw
wget -r http://www.dokuwiki.org/export?do=export_raw

oder p und r kombiniert. Das habe ich aus der Manpage, aber keine praktische Erfahrung mit diesen Optionen. Berichte mal. Insbesondere auch, ob die Option "do=export_raw" dabei erhalten bleibt. Dabei wird aber wohl auch die Versionshistorie usw. mit heruntergeladen - und Links auf fremde Seiten (außer bei -r?).

Edit: Am besten (wenn es keine spezielle Wiki-Lösung in einer Suchmaschine gibt, wenn man nach wget wiki oder wiki download sucht), ist wohl, wenn du dir im Wiki alle Seiten anzeigen (Funktion für Inhaltsverzeichnis/ Index!) lässt und diese Namen dann (ggf. manuell) in eine Textdatei kopierst und den Befehl aus dem Link nimmst...

adun Team-Icon

Avatar von adun

Anmeldungsdatum:
29. März 2005

Beiträge: 8606

Geht einfacher mit httrack, dazu brauchst du nur die Linktiefe und den regulären Ausdruck für die URL. Updates werden damit auch weniger aufwendig.

kuckuck78

(Themenstarter)

Anmeldungsdatum:
9. Juni 2011

Beiträge: 20

@adun: jo, das fluppt, dankeschön. Ich habe mal alles runter geladen, und mir ist dabei aufgefallen, von das wiki überall Bilder verlinkt. _export/raw ist auch dabei, das ist das, was ich eigentlich haben wollte. Das macht, wegen der Bilder, 1% der Datenmenge aus.

@Benno-007, @all: dokuwiki hat eine Funktion namens: do=index, i.e.: http://www.dokuwiki.org/dokuwikil?do=index (das ist in machen templates aka skins auch gleich als Link zum anklicken dabei, aber eben nicht in allen) und diese Funktion generiert den aktuellen namespace als html-datei. Allerdings ohne Unterverzeichnisse. Von hier müsste man sich mittels http://www.dokuwiki.org/dokuwiki?idx=config, etc. weiterhangeln können.

Nutzlos zwar, da wir mit httrack ein fertiges GPL-Tool haben, das sogar cross-platform ist, doch irgendwie haben bash und wget/curl ihre Reize. (Die do=index-Funktion ist mir natürlich erst aufgefallen, nachdem httrack sein Werk vollbracht hat.)

Der Vollständigkeit halber: Für dokuwiki gibt es schon etliche Plugins, die das exportieren von Inhalt vereinfachen sollen, doch müssen auch für die jeweilige Version vorhanden und außerdem installiert sein.

Benno-007

Anmeldungsdatum:
28. August 2007

Beiträge: 29240

Wohnort: Germany

Danke jedenfalls für die verbalen Rückmeldungen. ☺

Antworten |