NEWS
[gelöst]Abfrage von Daten einer Webseite
-
Hallo,
ich würde gerne von folgender Webseite Stadtklima aus der Tabelle einige Werte abfragen um sie im Vis darstellen zu können. Ist das möglich, und wenn ja wie.Von Java habe ich so gut wie keinen Plan.
Grüssle
Matze -
@Beliar_666 sagte in Abfrage von Daten einer Webseite:
Stadtklima
Ich hab das mit dem parser Adapter gemacht.
Ist sehr kryptisch und wenn die Seite mal neu gemacht wird funktioniert es auch nicht mehr das ist der Nachteil -
@Segway sagte in Abfrage von Daten einer Webseite:
@Beliar_666 sagte in Abfrage von Daten einer Webseite:
Stadtklima
Ich hab das mit dem parser Adapter gemacht.
Ist sehr kryptisch und wenn die Seite mal neu gemacht wird funktioniert es auch nicht mehr das ist der NachteilDas klingt schon interessant, und das die Stadt ihre Seitenstruktur so schnell ändert wage ich zu bezweifeln. Nur kapier ich leider den Parser adapter mal so gar nicht.
es geht explizit um den Abschnitt der Tabelle auf der Seite:
<div align='left'><left> <table border='1' cellspacing='0' cellpadding='1' width='489' <tr> <td colspan='2' align='left'><br><span class='articleHead'>Aktuelle Luftdaten</span></td> </tr> <div class='articleText'> <td align='left'></td> </tr> <tr> <div id="articleText"> <td align='left'>Stickstoffmonoxid (NO):</td> <td align='right'> 0.0 (µg/m³)</td> </tr> <tr> <td align='left'>Stickstoffdioxid (NO2):</td> <td align='right'> 0.4 (µg/m³)</td> </tr> <tr> <td align='left'>Ozon (O3):</td> <td align='right'> 28.2 (µg/m³)</td> </tr> <tr> <td align='left'>Ozonpotential (O3 + NO2):</td> <td align='right'> 28.6 (µg/m³)</td> </tr> <tr> <td align='left'>Feinstaub (PM10):</td> <td align='right'> 12.6 (µg/m³)</td> </tr> <tr> <td align='left'>Feinstaub (PM2.5): (bisher ohne interaktiver Auswertung)</td> <td align='right'> 9.8 (µg/m³)</td> </tr>
Also um die Messwerte dort.
-
@Beliar_666
bitte mal den ganzen Quelltext in Spoiler und Code-TagsDann welche Infos du haben willst.
Danach gehen wir da mal zusammen an.
Das ist gar nicht so schwierig - das schaffst du danach alleine! -
Habe die Quelltextseite mal in regex101.com reingeschmissen.
Also an die Lufttemperatur kommt man mit:Lufttemperatur\D+([\d.\s:]+)
Musste mal in den parser eingeben ... mal sehen was da kommt. Ich mach das immer mit trial and error
-
@Homoran sagte in Abfrage von Daten einer Webseite:
@Beliar_666
bitte mal den ganzen Quelltext in Spoiler und Code-TagsDann welche Infos du haben willst.
Danach gehen wir da mal zusammen an.
Das ist gar nicht so schwierig - das schaffst du danach alleine!Da der Quelltext der Seite zu Lang ist, hier als angehängte Datei.
Und es geht um Stickstoffmonoxid, Stickstoffdioxid, Ozon (O3), Ozonpotential (O3 + NO2), Feinstaub (PM10), Feinstaub (PM2.5)
Der Ansatz von Segway war schon gut, nur findet er bei Feinstaub mehrere Ergebnisse und da stehe ich vor dem Problem, wie ich zu den richtigen Daten komme.
-
@Beliar_666 sagte in Abfrage von Daten einer Webseite:
Da der Quelltext der Seite zu Lang ist, hier als angehängte Datei.
Ich hatte den Link übersehen, habe es schon gefunden - danke!
@Beliar_666 sagte in Abfrage von Daten einer Webseite:
Der Ansatz von Segway war schon gut
Ja das war er.
Also jetzt mal Step by Step - ich nehme an, du willst es lernen.
Den Quellcode bei regex101.com einkopieren, links auf Javascript stellen und dann erst einmal die "Gegend" suchen, von der du den Wert haben willst.
(bevor ich das mit den Feinstaubwerten wusste hatte ich folgenden RegEx für dich:ht'>\s+(\d+.\d)\s
der findet fast alles!
Um den richtige RegEx zu bekommen muss man oft spielen. Rechts oben steht warum der Regex zu welchem Ergebnis kommt.
Üblich sind normal geschriebene "Texte" oder Escapesequenzen, die mit einem Backslash beginnen.
Damit fängt man erst einmal an. (full match)zum Schluss wird dann das gewünschte Ergebnis in runde Klammern gesetzt. (group)
@Beliar_666 sagte in Abfrage von Daten einer Webseite:
findet er ... mehrere Ergebnisse
und genau das ist das gute.
rechts stehen dann alle Fundstellen.
Du kannst im Parser Adapter mit "Num" die gewünschte Fundstelle aussuchen. (die erste ist 0!)So kannst du alle Ergebnisse mit dem gleichen RegEx auslesen, nur indem du die Num anpasst.
Stickstoffmonoxid wäre dann num = 3
Stickstoffdioxid num = 4
Ozon (O3) num = 5
Ozonpotential (O3 + NO2) num = 6
Feinstaub (PM10) num = 7
und Feinstaub (PM2.5) num = 8 -
Vielen lieben Dank euch beiden! Es hat geklappt mit eurer Hilfe.