Generierung einer statischen HTML-Version mit dem Python-Skript exportMediaWiki2Html.py
Ursprünglich, d.h. bevor wir dann letztlich erfolgreich die statische Website des DadAWeb mit dem Programm HTTrack aus der dynamischen Mediawiki-Site generiert haben, haben wir das Python-Skript exportMediaWiki2Html.py zur Generierung der statischen HTML-Seiten des Wikis benutzt. Bei dieser Methode werden durch das Skript allerdings nur die eigentlichen Contentseiten des Wikis unter Ausklammerung der Diskussions- und Hilfsseiten als einzelne statische HTML-Seiten und ohne die übergeordnete Navigation generiert. Deshalb ist für die Generierung der statischen Version die Methode mit dem Programm HTTrack Website Copier besser geeignet.
Inhaltsverzeichnis
- 1 Befehl zum Generieren der HTML-Version mit dem Skript exportMediaWiki2HTML
- 2 Zweck
- 3 Voraussetzungen
- 4 Beispiel einer Verzeichnisstruktur
- 5 Schritt 1 – XAMPP starten
- 6 Schritt 2 – Funktion des Wikis prüfen
- 7 Schritt 3 – Eingabeaufforderung öffnen
- 8 Schritt 4 – Virtuelle Python-Umgebung aktivieren
- 9 Schritt 5 – Python-Version prüfen
- 10 Schritt 6 – Installierte Pakete prüfen
- 11 Schritt 7 – Funktion des Skripts prüfen
- 12 Schritt 8 – Altes Exportverzeichnis löschen
- 13 Schritt 9 – HTML-Export starten
- 14 Schritt 10 – Ablauf des Exports beobachten
- 15 Schritt 11 – Abschluss des Exports
- 16 Ergebnis
- 17 Änderungen am Originalprogramm
- 18 Hinweise
- 19 Zusammenfassung
- 20 Die erzeugte HTML-Version im Browser testen
Befehl zum Generieren der HTML-Version mit dem Skript exportMediaWiki2HTML
- XAMPP laden: Dort dann Apache und MySQL aktivieren
- In CMD-Eingabeaufforderung gehen und dort nacheinander folgende Befehle eingeben:
- in den Export-Skript-Ordner wechseln:
cd C:\xampp\exporter\exportMediaWiki2HTML
- Virtuelle Umgebung aktivieren:
.venv\Scripts\activate
- Das Skript mit dem folgenden Befehl starten:
python exportMediaWiki2Html.py -l http://localhost/dadaweb/ -o C:\xampp\htdocs\dadaweb-test
Zweck
Mit dem Python-Skript exportMediaWiki2Html.py lässt sich aus einer MediaWiki-Installation eine statische HTML-Version erzeugen. Dabei werden sämtliche Wiki-Seiten als einzelne HTML-Dateien exportiert und alle eingebundenen Bilder lokal gespeichert.
Die erzeugte HTML-Version kann anschließend ohne PHP, MySQL oder MediaWiki auf jedem beliebigen Webserver oder auch direkt von einem Datenträger genutzt werden.
Diese Anleitung beschreibt den Einsatz unter Windows 11 mit einer lokal unter XAMPP betriebenen MediaWiki-Installation.
Voraussetzungen
Folgende Programme müssen installiert sein:
- Windows 11
- XAMPP
- MediaWiki
- Python 3.x
- Git
Beispiel einer Verzeichnisstruktur
C:\ │ ├── xampp │ │ │ ├── htdocs │ │ ├── dadaweb │ │ │ ← MediaWiki │ │ │ │ │ └── dadaweb-test │ │ ← Zielverzeichnis des HTML-Exports │ │ │ └── exporter │ └── exportMediaWiki2HTML │ ← Python-Skript
Schritt 1 – XAMPP starten
Vor jedem Export muss das Wiki über den lokalen Webserver erreichbar sein.
- Dazu das XAMPP Control Panel starten.
- Anschließend mindestens Apache starten.
- Ist das Wiki nicht schreibgeschützt oder sollen Benutzerdaten verwendet werden, sollte zusätzlich MySQL gestartet werden.
Nach dem Start müssen die betreffenden Module grün hinterlegt sein.
Apache Running MySQL Running
Schritt 2 – Funktion des Wikis prüfen
Vor dem Export im Browser prüfen, ob das Wiki erreichbar ist.
Beispielsweise: http://localhost/dadaweb/
Erst wenn das Wiki vollständig angezeigt wird, sollte der Export begonnen werden.
Schritt 3 – Eingabeaufforderung öffnen
- Die Windows-Eingabeaufforderung (CMD) öffnen.
- Nicht PowerShell verwenden.
- In das Exportverzeichnis wechseln:
cd C:\xampp\exporter\exportMediaWiki2HTML
Schritt 4 – Virtuelle Python-Umgebung aktivieren
.venv\Scripts\activate.bat
Danach sollte die Eingabeaufforderung beispielsweise lauten:
(.venv) C:\xampp\exporter\exportMediaWiki2HTML>
Schritt 5 – Python-Version prüfen
python --version
Beispiel: Python 3.14.3
Schritt 6 – Installierte Pakete prüfen
pip list
Mindestens das Paket requests muss installiert sein.
Schritt 7 – Funktion des Skripts prüfen
python exportMediaWiki2Html.py --help
Es erscheint die Hilfe des Programms mit sämtlichen verfügbaren Parametern.
Schritt 8 – Altes Exportverzeichnis löschen
Vor jedem neuen Export empfiehlt es sich, den bisherigen Export vollständig zu entfernen.
rmdir /s /q C:\xampp\htdocs\dadaweb-test
Danach das Zielverzeichnis wieder anlegen:
mkdir C:\xampp\htdocs\dadaweb-test
Schritt 9 – HTML-Export starten
Den Export mit folgendem Befehl starten:
python exportMediaWiki2Html.py -l http://localhost/dadaweb/ -o C:\xampp\htdocs\dadaweb-test
Dabei bedeutet:
- -l = Adresse des Wikis
- -o = Zielverzeichnis für den Export
Schritt 10 – Ablauf des Exports beobachten
Während des Exports werden sämtliche Seiten nacheinander ausgegeben.
Beispielsweise:
{'pageid': 2659,
'title': 'Reclus, Élisée'}
Danach folgen die zugehörigen Bilder:
Downloading ...
Nicht vorhandene Bilder werden lediglich als Warnung ausgegeben:
WARNUNG: Bild nicht gefunden: ...
Der Export läuft trotzdem vollständig weiter.
Schritt 11 – Abschluss des Exports
Nach erfolgreichem Abschluss erscheint wieder die normale Eingabeaufforderung.
Beispielsweise:
(.venv) C:\xampp\exporter\exportMediaWiki2HTML>
Es sollte keine Python-Fehlermeldung mehr erscheinen.
Ergebnis
Im Zielverzeichnis befindet sich anschließend beispielsweise:
dadaweb-test │ ├── img │ ├── A.html ├── Alexander_Berkman.html ├── Anarchie.html ├── ... ├── Z.html │ └── page_not_existing.html
Jede Wiki-Seite wurde als eigenständige HTML-Datei gespeichert.
Änderungen am Originalprogramm
Für den produktiven Einsatz wurden mehrere Verbesserungen vorgenommen.
1. Erhöhung der maximal exportierten Seitenzahl
Im Originalprogramm war die Zahl der exportierten Seiten auf default=500 begrenzt. Dieser Wert wurde auf default=2500 erhöht. Dadurch werden sämtliche Artikel des DadAWeb exportiert.
2. Fehlende Bilder
Das Originalprogramm brach bei jedem fehlenden Bild sofort ab. Durch die Änderung wird stattdessen lediglich eine Warnung ausgegeben.
WARNUNG: Bild nicht gefunden
Der Export läuft anschließend automatisch weiter.
3. Fehlerhafte srcset-Einträge
Einige ältere MediaWiki-Versionen erzeugen fehlerhafte srcset-Einträge. Diese führten ursprünglich zum Fehler:
ValueError: substring not found
Durch eine zusätzliche Prüfung werden ungültige Bildpfade jetzt erkannt und übersprungen.
Hinweise
Während des gesamten Exportvorgangs müssen Apache (gegebenenfalls MySQL) weiterlaufen.
Wird Apache während des Exports beendet, erscheint eine Fehlermeldung wie ConnectionRefusedError oder HTTPConnectionPool(host='localhost'). In diesem Fall muss Apache erneut gestartet und der Export wiederholt werden.
Zusammenfassung
Nach Durchführung aller beschriebenen Schritte erhält man eine vollständige statische HTML-Kopie des MediaWiki mit sämtlichen exportierten Inhaltsseiten und lokal gespeicherten Bildern. Durch die vorgenommenen Erweiterungen am Python-Skript werden auch größere Wikis zuverlässig verarbeitet, fehlende Bilddateien führen nicht mehr zum Abbruch des Exports, und fehlerhafte srcset-Einträge werden automatisch übersprungen.
Die erzeugte HTML-Version im Browser testen
Nach erfolgreichem Export kann die statische HTML-Version direkt über den lokalen Apache-Webserver aufgerufen werden.
Dazu im Browser folgende Adresse eingeben: http://localhost/dadaweb-test/
Da das Exportverzeichnis standardmäßig keine index.html enthält, zeigt Apache zunächst eine Verzeichnisübersicht aller erzeugten HTML-Dateien an. Von dort aus kann jede exportierte Wiki-Seite durch Anklicken geöffnet werden.
Soll direkt die ehemalige Wiki-Startseite geöffnet werden, wird deren HTML-Datei aufgerufen. Im DadAWeb lautet sie beispielsweise: http://localhost/dadaweb-test/Willkommen_im_neuen_DadAWeb_.html
(Der Dateiname entspricht dem Seitentitel, wobei Leerzeichen und Sonderzeichen automatisch ersetzt werden.)
Alternativ kann die gewünschte HTML-Datei auch direkt über die Adresszeile des Browsers aufgerufen werden.


