Web Scraping von Wikipedia-Koordinaten

Wikipedia ist eine fast unerschöpfliche Informationsquelle: Die deutsche Ausgabe umfasst mittlerweile mehr als 1.5 Millionen Artikel. Wenn ich jeden Tag 100 Artikel daraus lesen würde, wäre ich ungefähr für die nächsten 40 Jahre beschäftigt, sofern keine neuen Artikel hinzukämen. Aus geographischer Sicht bemerkenswert und möglicherweise nicht so bekannt ist die Georeferenzierung von vielen Artikeln. Im WikiProjekt Georeferenzierung werden Lageinformationen für Wikipedia-Inhalte bestimmt. Mittlerweile gibt es deshalb in der deutschsprachigen Wikipedia über 340’000 Koordinatenangaben.  Beispielsweise sind neben den Artikeln für Städte oder Berge auch Artikel zu Bauwerken georeferenziert. Die Koordinaten eines Orts sind jeweils oben rechts eines Artikels zu finden. Praktischerweise kann man sich den Ort auch gleich auf einer Open Street Map-Karte anzeigen lassen.

millionenstaedte307 Millionenstädte gemäss Wikipedia

Für eine Spielerei (über die wir hier vielleicht später einen Artikel schreiben werden) suchte ich eine Liste mit grossen und einigermassen bekannten Städten weltweit. Die Liste der Millionenstädte aus Wikipedia schien mir für diesen Zweck ausgezeichnet geeignet. Der Nachteil dieser Liste sind die fehlenden Koordinaten der Städte. Dafür ist die Liste mit den Artikeln jeder Stadt verlinkt, wo die Koordinaten vorhanden sind. Es war für mich deshalb naheliegend, die Koordinaten direkt aus diesen Artikeln zu extrahieren statt eine andere Möglichkeit der Georeferenzierung zu benutzen.

Technologisch gibt es natürlich viele Möglichkeiten für eine Umsetzung. Ich habe mich für FME entschieden. Der Vorteil davon ist, dass ich aus den Ergebnissen direkt einen Geodatensatz in einem beliebigen Format erstellen kann. Ausserdem wollte ich einfach mal ausprobieren, wie gut das Lesen und Parsen von HTML-Seiten (auch bekannt als „Webscraping“) mit FME funktioniert.

Mit dem FME-HTTPFetcher habe ich die Liste der Millionenstädte eingelesen und diese anschliessend bearbeitet, um die Städtenamen und Artikel-Links zu erhalten. Ich habe dazu reguläre Ausdrücke verwendet; das ist aber, wegen der schwachen Strukturierung der Daten, etwas „Bastelarbeit“. Wenn man die Links erst einmal hat, kann man die Artikel jeder einzelnen Stadt mit dem HTTPFetcher lesen und die Koordinaten  mit dem StringSearcher und regulären Ausdrücken extrahieren: <span class=“latitude“>([^<]+) bzw. <span class=“longitude“>([^<]+).

Das Auslesen der Daten hat auf diese Weise mit FME prima funktioniert. Über die Links gelangt man direkt zum richtigen Artikel, während andere Georeferenzierungsdienste möglicherweise bei einigen Städten über unterschiedliche Schreibweisen (beispielsweise deutsch Ho-Chi-Minh-Stadt/englisch Ho_Chi_Minh_City) und Sonderzeichen stolpern könnten (beispielsweise São_Paulo). Da zum Lesen der Koordinaten der ganze Artikel heruntergeladen wird, ist das Vorgehen aber sehr ineffizient. Bei 307 Millionenstädten in der verwendeten Liste spielt das zwar keine Rolle. Für grössere Georeferenzierungs-Aufgaben kann dieses Vorgehen aber selbstverständlich nicht verwendet werden (und ist gemäss Nutzungsbedingungen wohl auch untersagt).

Für solche Fälle stehen die Lageangaben aus Wikipedia über Web Services oder Downloads zur Verfügung. Die Details dazu findet man auf der Wikipedia-World-Seite. Spannend ist auch die Möglichkeit bei GeoNames, über die georeferenzierten Wikipedia-Artikel eine Suche auszuführen (gibt es ähnlich auch bei Wikilocation).

640px-Wp-w4-big

Karte mit gefilterten Koordinaten von Wikipedia-Artikeln (Quelle: http://commons.wikimedia.org/wiki/File:Wp-w4-big.jpg von User:Kolossos unter der Lizenz Creative Commons Attribution 3.0 Unported)

Momentan laufen Arbeiten, um die Koordinaten in Wikipedia einfacher nutzbar zu machen. Eine der ersten Anwendungen dafür ist die mobile Wikipedia-Seite. Dort kann man sich im Experimental Mode georeferenzierte Artikel in der Nähe seines aktuellen Standorts anzeigen lassen. Weiter geht das Wikidata-Projekt, in welchem die gesamten Daten der Wikipedia strukturiert werden sollen. Dazu gab es letztens auch einen interessanten Artikel in der c’t. Wenn diese Arbeiten erfolgreich sind, sollte es zukünftig wesentlich einfacher werden, Daten aus Wikipedia maschinell auszuwerten.

Jürg Mannes

Jürg Mannes

Jürg Mannes (MSc) hat an der Universität Zürich Geographie studiert. Er arbeitet seit 2005 bei Ernst Basler + Partner, zuerst in der Datenanalyse und seit mehreren Jahren als Projektleiter.

In seiner Funktion leitet er die Entwicklung von anspruchsvollen Applikationen für Kunden der öffentlichen Hand und aus der Privatwirtschaft. Daneben erarbeitet Jürg Mannes auch Software- und andere Konzepte.

Jürg Mannes ist zertifizierter Project Management Professional (PMI), HERMES Swiss Project Team Professional (HSPTP) und Professional Requirements Engineer nach dem Standard des International Requirements Engineering Board (IREB).

Mail: juerg.mannes@ebp.ch

Jürg Mannes auf:

Das könnte dich auch interessieren...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.