Yadgar: Automatische Datenextraktion aus Wikipedia-Seiten - PHP oder Javascript?

Beitrag lesen

Hi(gh)!

Ich habe folgendes Problem:

Im Rahmen meines GREENBOOK-Projektes, der Datenbank für elektronische Orgeln mit angeschlossenem Marktspiegel, will ich (um die gesammelten Verkaufsanzeigen räumlich zuordnen zu können) sämtliche deutschen Städte und Gemeinden (ORT) als MySQL-Stammdaten vorhalten, und zwar mit Namen, Postleitzahlen (ORT_PLZ) und Einwohnerzahlen (ORT_EINWOHNER), letztere auf die Erfassungsjahre ab 2018 bezogen.

Da die Beziehung zwischen Städten/Gemeinden und Postleitzahlen eine m:n-, die Beziehung zwischen Städten/Gemeinden und Einwohnerzahlen wegen der fortlaufenden Erfassungsjahre eine 1:n-Beziehung ist, verwende ich drei Tabellen:

ORT:  
id (SMALLINT, AUTO_INCREMENT, UNSIGNED, PRIMARY)  
name (VARCHAR(40))  
kreis_id (SMALLINT, verweist auf Stammdatentabelle KREIS)  
regbez_id (TINYINT, verweist auf Stammdatentabelle REGBEZ)  
land_id (TINYINT, verweist auf Stammdatentabelle LAND)

UNIQUE-Index über name, kreis_id, regbez_id und land_id.

ORT_PLZ:  
id (MEDIUMINT, AUTO_INCREMENT, UNSIGNED, PRIMARY)  
ort_id (SMALLINT)  
plz (VARCHAR(5))

UNIQUE-Index über ort_id und plz.

ORT_EINWOHNER:  
id (MEDIUMINT, AUTO_INCREMENT, UNSIGNED, PRIMARY)  
ort_id (SMALLINT)  
einwohnerzahl (MEDIUMINT)
jahr (YEAR)

UNIQUE-Index über ort_id, einwohnerzahl und jahr.

Um die händische Eingabe sämtlicher rund 12000 Ortsnamen werde ich nicht herumkommen... die Extraktion von Postleitzahlen und Einwohnerzahlen aus Wikipedia-Artikeln sollte sich aber automatisieren lassen.

Das Skript würde ausgehend von der Namensliste in ORT automatisch jeweils die entsprechende deutschsprachige Wikipedia-Seite laden und daraus dann (alle Wikipedia-Seiten zu deutschen Gemeinden haben eine zweispaltige "Basisdaten"-Tabelle mit u. a. den Einträgen "PLZ" und "Einwohnerzahl") die relevanten Daten auslesen.

Die Frage: mache ich das mit PHP oder doch besser mit Javascript? In PHP kenne ich mich besser aus...

Bis bald im Khyberspace!

Yadgar