[Wikide-l] Wie verarbeitet man die neue XML-Datei?

Daniel Herding DHerding at gmx.de
Fr Aug 5 09:44:03 UTC 2005


Stefan Kühn wrote:
> ich hab mir gerade die 470 MB Datei von http://download.wikimedia.org/wikipedia/de/ heruntergeladen und entpackt. Man erhält eine
> mit den Artikelinhalten (Stand 17.7.2005) im XML-Formt und mit einer Größe von 1,4 GB. 

> Kennt jemand eine Programm mit dem man bestimmte Datensätze aus der riesigen XML-Datei rausfiltern kann oder einen Editor, der diese
> Riesendatei verarbeitet?

Ich habe für den PyWikipediaBot einen SAX2-Parser in Python geschrieben, 
der das pages_current-Dump liest [1]. Der funktionierte zwar 
einwandfrei, aber leider war er zu langsam, er benötigte mehrere 
Stunden, um das Dump zu durchlaufen.

Darum habe ich mich für eine etwas unsaubere Lösung entschieden. In der 
aktuellen Version wird einfach ein regulärer Ausdruck verwendet, der 
einen Eintrag matcht [2, suche nach Rpage]. Das ganze läuft jetzt etwa 
10 bis 20 Mal so schnell wie die Version mit dem SAX2-Parser.

Schön wäre natürlich ein sauberer XML-Parser, der so schnell läuft wie 
die Version mit dem regulären Ausdruck, aber damit kann ich leider nicht 
dienen.


Daniel

[1] 
http://cvs.sourceforge.net/viewcvs.py/pywikipediabot/pywikipedia/xmlreader.py?rev=1.2&view=markup
[2] 
http://cvs.sourceforge.net/viewcvs.py/pywikipediabot/pywikipedia/xmlreader.py?rev=1.3&view=markup