Hat hier jemand Erfahrung mit Wikipedia Dumps?

Das Board für alle Fragen und Diskussionen, die keinen direkten Bezug zu CMS made simple haben
Post Reply
nhaack

Hat hier jemand Erfahrung mit Wikipedia Dumps?

Post by nhaack »

Aktuell arbeite ich an einem Projekt, dass auf einem Extrakt der englischen Wikipedia-Version aufsetzt.

Als Ausgangsbasis dient der Dump aller englischen Artikel. Dieses 25GB XML Monster hat mich fast den letzten Nerv gekostet aber am Ende war's dann doch easy. Jetzt habe ich also die Inhalte in eine MediaWiki Instanz gebracht und kann die Inhalte wunderbar ansurfen. Quasi ein Mirror ohne Versionshistorie etc.

Jetzt würde ich aber gerne bestimmte Inhalte aus dem Content parsen. Ich habe z.B. eine Auswahl an 400k Wikipedia Artikeln, die Auswahl klappt auch und auch die Inhalte aus der DB zu lesen oder die final gerenderten Seiten zu parsen... aber dieses verdammte WikiMarkup macht mich wirklich irre.

Die Inhalte liegen nicht als HTML Markup in der DB sondern im Wiki Markup. Die Basis Elemente (Headlines, Listen Absätze,Links) davon richtig zu parsen ist kein großes Problem - schwierig wird es bei der Verwendung von Templates und Tabellen.

Eine Überlegung wäre die Seiten über die MediaWiki Installation aufzurufen und dann das HTML zu parsen. Da ist allerdings das Problem, dass die einzelnen Seiten noch nie gerendert wurden (und dass ich bei einigen Templates Probleme habe). Wenn ich nun mit einem Script auf dem localhost die entsprechenden Einträge crawle bin ich nicht schneller als die Abfragen direkt gegen die Live-Version von Wikipedia zu stellen.

Dort liegt das Rate-Limit bei einer Seite pro Sekunde. Wenn ich davon ausgehe, dass ich das Abrufen schnell genug erledige und ich wirklich jede Sekunde eine Abfrage stellen kann läuft das Script immer noch 4,5 Tage (bei 400k Einträgen). Dazu kommt dann noch ein Parsen der einzelnen Dokumente, was sicherlich auch bei etwa einer Sekunde pro Dokument liegen dürfte. Also insgesamt 9 Tage Laufzeit.

Ich habe schon verschiedene Parser Bibliotheken für Wiki Markup ausprobiert aber keiner konnte überzeugen. Hat hier also jemand vielleicht schonmal Erfahrung mit dem Parsen von Wiki Markup gesammelt?

Gerne würde ich dies ja für den gesamten Dump durchführen. Nur die API Variante ist da ein wenig sehr krass ;D denn das sind 2m Einträge.

Am besten wäre eine Klasse/Funktion/Bibliothek mit der ich das rohe Wikimarkup zumindest grob rendern kann (unbekannte Elemente und auch Tabellen können ausgelassen werden) oder die Inhalte um den Wikicode bereinigt zurück bekomme.

Alle Hinweise sind willkommen :)

Beste Grüße
Nils
nhaack

Re: Hat hier jemand Erfahrung mit Wikipedia Dumps?

Post by nhaack »

Falls es jemand vielleicht mal braucht:

Habe für das PEAR Framework die Komponente Text_Wiki gefunden: http://pear.php.net/package/Text_Wiki/redirected. Zudem habe ich noch ein paar Funktionen geschrieben die vorab und danach ein wenig aufräumen (im Grunde filtern sie das heraus, was Text-Wiki nicht rendern kann). Die nun in nur noch ein paar Stunden gerenderten Seiten sind jetzt soweit i.O. das ich sie Parsen und dann die einzelnen Elemente in die DB spielen kann.

Optimal ist die Lösung noch nicht, aber es geht.

Beste Grüße
Nils
Post Reply

Return to “Stammtisch”