NEWS
Parser - regex bringt mich zur Verzweiflung
-
Ich hoffe, der Thread ist hier richtig.
Hatte bereits in einem anderen Thread zum Parsing einer Solarprognose-Seite gefragt und mir wurde der Adapter "Parser" empfohlen.
Ok, kein Ding, installiert und meinen gewünschten Wert konfiguriert.
Leider scheint mein regex-Ausdruck nicht zu funktionieren, obwohl er auf Testseiten klappt.Und auch beim Editieren im Adapter kann ich testen. Das ist etwas kurios: öffne ich den Editor für meinen Wert, so erscheint Ergebnis "Nix da". Fummle ich dann an der ReEx rum und ändere im Endeffekt nix, kommt das Ergebnis. Siehe Screenshots.
Was mache ich bei der regex falsch?
Grüße,
Harald
Quelltext:
! ````
!
<title>Detailprognose | Neuwetter.de</title>!
!
[![Wettermessnetz Neuwetter.de](/img/hplayout/neuwetter.png)](https://www.neuwetter.de)
! <form class="search" style="padding-top: 40px" action="/suche/" method="get">
<label for="where">Ort?</label></form>
!
! *
! * Messwerte
! * Wetterwarnungen
! * Projekt
! * Mitmachen
! * Wetterstationen
!Sie sind hier:
! # Detailprognose
!!
! <noscript>
<div id="noscript">für die Vorhersage gibt es eine grafische Darstellung. <br /><br />Bitte aktivieren Sie Javascript, um das Chart zu sehen!</div>
</noscript>
!!
!! Datum/Zeit Temperatur Niederschlag Luftfeuchtigkeit Luftdruck Wind !
! 22.01.
20 Uhr |
|
4 °C |
0.4 l/m² |
87 % |
1015 hPa |
17 Km/h
aus WNW |! 22.01.
23 Uhr |
|
3 °C |
0 l/m² |
93 % |
1018 hPa |
16 Km/h
aus West |! 23.01.
02 Uhr |
|
2 °C |
0 l/m² |
94 % |
1020 hPa |
14 Km/h
aus West |! 23.01.
05 Uhr |
|
2 °C |
0 l/m² |
94 % |
1022 hPa |
13 Km/h
aus WSW |! 23.01.
08 Uhr |
|
1 °C |
0 l/m² |
90 % |
1022 hPa |
13 Km/h
aus Südwest |! 23.01.
11 Uhr |
|
3 °C |
0 l/m² |
88 % |
1023 hPa |
14 Km/h
aus SSW |! 23.01.
14 Uhr |
|
6 °C |
0 l/m² |
79 % |
1022 hPa |
20 Km/h
aus SSW |! 23.01.
17 Uhr |
|
6 °C |
0.9 l/m² |
82 % |
1021 hPa |
18 Km/h
aus SSW |! 23.01.
20 Uhr |
|
6 °C |
5.3 l/m² |
88 % |
1020 hPa |
19 Km/h
aus SSW |! 23.01.
23 Uhr |
|
8 °C |
0.7 l/m² |
87 % |
1020 hPa |
22 Km/h
aus Südwest |! 24.01.
02 Uhr |
|
8 °C |
0.7 l/m² |
88 % |
1020 hPa |
19 Km/h
aus Südwest |! 24.01.
05 Uhr |
|
8 °C |
0.1 l/m² |
86 % |
1020 hPa |
19 Km/h
aus Südwest |! 24.01.
08 Uhr |
|
9 °C |
0.2 l/m² |
85 % |
1019 hPa |
19 Km/h
aus SSW |! 24.01.
11 Uhr |
|
10 °C |
0.1 l/m² |
84 % |
1018 hPa |
25 Km/h
aus SSW |! 24.01.
14 Uhr |
|
12 °C |
0.2 l/m² |
74 % |
1016 hPa |
30 Km/h
aus SSW |! 24.01.
17 Uhr |
|
10 °C |
0 l/m² |
74 % |
1014 hPa |
29 Km/h
aus SSW |! 24.01.
20 Uhr |
|
9 °C |
0.1 l/m² |
80 % |
1013 hPa |
23 Km/h
aus SSW |! 24.01.
23 Uhr |
|
9 °C |
0.1 l/m² |
78 % |
1013 hPa |
26 Km/h
aus SSW |! 25.01.
02 Uhr |
|
9 °C |
1.4 l/m² |
85 % |
1013 hPa |
19 Km/h
aus Südwest |! 25.01.
05 Uhr |
|
8 °C |
2.4 l/m² |
91 % |
1011 hPa |
10 Km/h
aus West |! 25.01.
08 Uhr |
|
7 °C |
6.4 l/m² |
94 % |
1011 hPa |
8 Km/h
aus OSO |! 25.01.
11 Uhr |
|
6 °C |
4.7 l/m² |
96 % |
1010 hPa |
9 Km/h
aus Südost |! 25.01.
14 Uhr |
|
8 °C |
5.5 l/m² |
78 % |
1010 hPa |
21 Km/h
aus Südwest |! 25.01.
17 Uhr |
|
6 °C |
0.8 l/m² |
75 % |
1010 hPa |
23 Km/h
aus WSW |! 25.01.
20 Uhr |
|
5 °C |
0.8 l/m² |
80 % |
1012 hPa |
15 Km/h
aus WSW |! 25.01.
23 Uhr |
|
4 °C |
0 l/m² |
80 % |
1014 hPa |
14 Km/h
aus Südwest |! 26.01.
02 Uhr |
|
3 °C |
0 l/m² |
80 % |
1015 hPa |
13 Km/h
aus Südwest |! 26.01.
05 Uhr |
|
3 °C |
0 l/m² |
83 % |
1015 hPa |
14 Km/h
aus SSW |! 26.01.
08 Uhr |
|
2 °C |
0 l/m² |
84 % |
1016 hPa |
13 Km/h
aus Südwest |! 26.01.
11 Uhr |
|
3 °C |
0 l/m² |
86 % |
1018 hPa |
15 Km/h
aus WSW |! 26.01.
14 Uhr |
|
5 °C |
0 l/m² |
75 % |
1018 hPa |
16 Km/h
aus WSW |! 26.01.
17 Uhr |
|
5 °C |
0 l/m² |
70 % |
1019 hPa |
13 Km/h
aus West |! 26.01.
20 Uhr |
|
2 °C |
0.2 l/m² |
83 % |
1022 hPa |
12 Km/h
aus West |! 26.01.
23 Uhr |
|
2 °C |
0 l/m² |
88 % |
1024 hPa |
13 Km/h
aus West |! 27.01.
02 Uhr |
|
1 °C |
0.1 l/m² |
92 % |
1026 hPa |
13 Km/h
aus West |! 27.01.
05 Uhr |
|
1 °C |
0.1 l/m² |
95 % |
1028 hPa |
13 Km/h
aus West |! 27.01.
08 Uhr |
|
0 °C |
0.2 l/m² |
96 % |
1030 hPa |
9 Km/h
aus WNW |! 27.01.
11 Uhr |
|
1 °C |
0 l/m² |
94 % |
1033 hPa |
7 Km/h
aus West |! 27.01.
14 Uhr |
|
4 °C |
0.1 l/m² |
81 % |
1035 hPa |
7 Km/h
aus West |! 27.01.
17 Uhr |
|
4 °C |
0 l/m² |
73 % |
1035 hPa |
6 Km/h
aus WNW |! 27.01.
20 Uhr |
|
1 °C |
0 l/m² |
78 % |
1037 hPa |
4 Km/h
aus Südwest |! 27.01.
23 Uhr |
|
0 °C |
0 l/m² |
79 % |
1039 hPa |
8 Km/h
aus SSW |! 28.01.
02 Uhr |
|
-1 °C |
0 l/m² |
73 % |
1039 hPa |
9 Km/h
aus SSW |! 28.01.
05 Uhr |
|
-1 °C |
0 l/m² |
66 % |
1038 hPa |
9 Km/h
aus SSW |! 28.01.
08 Uhr |
|
1 °C |
0 l/m² |
64 % |
1039 hPa |
10 Km/h
aus SSW |! 28.01.
11 Uhr |
|
2 °C |
0 l/m² |
63 % |
1040 hPa |
12 Km/h
aus SSW |! 28.01.
14 Uhr |
|
4 °C |
0.1 l/m² |
68 % |
1039 hPa |
11 Km/h
aus WSW |! 28.01.
17 Uhr |
|
4 °C |
0.1 l/m² |
77 % |
1039 hPa |
9 Km/h
aus WSW |! 28.01.
20 Uhr |
|
4 °C |
0.2 l/m² |
83 % |
1039 hPa |
9 Km/h
aus Südwest |! 28.01.
23 Uhr |
|
4 °C |
0.1 l/m² |
87 % |
1039 hPa |
8 Km/h
aus Südwest |! Neuwetter.de 0[+1](javascript:SiNKlick('https://plus.google.com/share?url=http%3A%2F%2Fwww.neuwetter.de%2Fwetter%2Fdetailprognose%2Fr%2F13122.html&title=Detailprognose'))0[Tweet](javascript:SiNKlick('https://twitter.com/intent/tweet?original_referer=http%3A%2F%2Fwww.neuwetter.de%2Fwetter%2Fdetailprognose%2Fr%2F13122.html&source=tweetbutton&text=Detailprognose&url=http%3A%2F%2Fwww.neuwetter.de%2Fwetter%2Fdetailprognose%2Fr%2F13122.html'))0[Teilen](javascript:SiNKlick('http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.neuwetter.de%2Fwetter%2Fdetailprognose%2Fr%2F13122.html&t=Detailprognose&src=sp');)Datenschutz-HinweisBei einem Klick auf den Facebook, Twitter und/oder Google Plus Button gelangen Sie zu diesen Anbietern. Wir haben keinen Einfluss auf den Umfang der Daten, die dort erhoben und gesammelt werden.
! ## Aktuelle Messwerte
!
! * Temperatur
! * Maximumtemperatur
! * Minimumtemperatur
! * Min. Bodentemperatur
! * Temperaturdifferenz -1h
! * Taupunkt
! * Luftfeuchtigkeit
! * Luftdruck
! * Luftdrucktendenz
! * Wind
! * Windböen
! * Windspitzen
! * Windrichtung
! * Niederschlag
! * 1h Niederschlag
! * 24h Niederschlag
! * Solarstrahlung
! * UV-Strahlung
! * Sonnenscheindauer
! * 1h Sonne
! * Aktuelles Wetter
! * Bedeckung
! * Wetterdaten-Tabelle
!
! ## Europawetter
!
!
! Temperatur |
500hPa, Druck |! Gesamtbedeckung |
Taupunkt |! Wind |
Niederschlagssumme |! Luftfeuchte |
Solarstrahlung |!
! ## Niedersachsenwetter
!
!
! Wettervorhersage: |
heute |! |
morgen |! |
Übermorgen |! |
in 3 Tagen |!
! ## Vorhersage im Detail
!
!
! Altes Land |
Celle |! Emsland/Osnabrück |
Hannover |! Oldenburg/Bremen |
Ostfriesland |!
! 2018 Neuwetter.de - Das Wettermessnetz und Wetterinfoportal für Niedersachsen und Bremen.
!! ## Neuwetter
!
! * Projekt
! * Mitmachen
! * Forum
! * Wetterstationen
! * Messwerte
! * Suche
! * Wetterlinks
! * Impressum
!! ## Messnetz
!
! * Wetter Ilsenburg
! * Wetter Embühren
! * Wetter Langeoog
! * Wetter Rendsburg
! * Wetter Nienstädt
! * Wetter Venray
! * Wetter Kirchehrenbach
! * Wetter Göhrde Schmessau
!! ## Wettervorhersage
!
! * Altes Land
! * Celle
! * Emsland
! * Hannover
! * Harz
! * Lüneburg
! * Oldenburg/Bremen
! * Ostfriesland
![![Twitter](/img/hplayout/twitter_bg.png)](http://twitter.com/neuwetter) [Neuwetter.de auf Twitter](http://twitter.com/neuwetter)
!
! <noscript><p><img src="https://pk.lison.info/js/index.php?idsite=3" style="border:0;" alt//></p></noscript>
!! ````
RegEx:````
name: [']Solarstrahlung.\n.\n.\n.\n.*\n.data: (.) -
klappt auch nicht bei regex101.com
Was willst du für einen Wert haben?
Melde mich gleich wieder.
EDIT:
ist es das hier?
\n\s*'Solarstrahlung':(\d*)
dann wäre es gut, wenn du einen Beispieltext mit Wert hättest
EDIT2:
ich denke jetzt sehe ich was du wollen könntest - aber bitte was GENAU?
Gruß
Rainer
-
Hallo Rainer,
nett, dass Du mir helfen willst.
Bei https://regex101.com/ klappt es - hatte einen kleinen Fehler bei der Threaderstellung hier, es muss heißen:
[']Solarstrahlung.*\n.*\n.*\n.*\n.*\n.*data: (.*) ````und nicht```` name: [']Solarstrahlung.*\n.*\n.*\n.*\n.*\n.*data: (.*)
Frag mich bitte nicht, warum da jetzt "name: " davor geknallt wurde - keine Ahnung. Stand auch in der Konfiguration. Hab's aber gelöscht, und trotzdem geht's nicht.
Wohlgemerkt: lösche ich z.B. die letzte ")" und füge sie wieder an, sagt der Editor das richtige Ergebnis:
[0.0,0.0,0.0,4.0,36.0,70.0,37.0,0.0,0.0,0.0,0.0,30.0,121.0,74.0,40.0,0.0,0.0,0.0,0.0,14.0,58.0,121.0,63.0,0.0,0.0,0.0,0.0,0.0,39.0,81.0,43.0,0.0,0.0,0.0,0.0,20.0,109.0,179.0,98.0,0.0,0.0,0.0,0.0,35.0,134.0,220.0,117.0,0.0,0.0,0.0,0.0,25.0,67.0,55.0,32.0,0.0]
Starte ich den Adapter, liefert er aber nix.
-
und du willst diesen ganzen Ausdruck haben?
nicht nur einen Wert daraus?
Gruß
Rainer
-
Ja, ich brauche halt alle Werte, muss sie danach in Javascript entsprechend verarbeiten. Will dafür jetzt keine 32 Datenpunkte aufmachen
Hier nochmal die Konfiguration des Datenpunkts:
-
Habe das jetzt auch getestet:
und es klappt im test.Die Frage ist nur, ob das auch von der Website zurückkommt???
Gruß
Rainer
-
gute Frage. Wenn Du Dir die Webseite
https://www.neuwetter.de/wetter/detailp … 13122.html
mal lädst und anschaust, steht der Text ja da drin.
Bzw… ändere mal die regEx einfach auf "Solarstrahlung" ab - siehe da, Ergebnis wird geschrieben.
Oder was meinst Du?
-
Genau, habe ich auch bereits getestet.
Manchmal stürzt mir sogar der Parser Adapter ab und geht auf rot.
Im Testmodus klappt es. - vielleicht ist das Ergebnis zu lang ???
Da muss @Bluefox etwas zu sagen.
Gruß
rainer
-
Danke Dir Rainer.
Habe gerade auch nochmal mit dem Hexeditor auf die HTML-Seite geschaut - da steht immer ein CRLF drin, nicht nur ein LF. Ob es damit zusammenhängt? Habe testhalber mal die \n durch \r\n ersetzt, hat aber auch nicht geholfen.
-
-
Nimm so was:
Regex: data:\s([^}\s]+)
Num: 5 `
Oje, wie hast Du das gezaubert? Ist ja der Hammer!
Das muss ich mal versuchen zu decodieren..
Danke Dir!
Harald
-
Das muss ich mal versuchen zu decodieren.. `
ich kannte zu dem Zeitpunkt diese Funktion noch nicht:
@Bluefox:Num: 5 `
Die nimmt das 6. Vorkommen des Regex.
Daher reicht als regex:
data:\s([^}\s]+)
das ja mehrfach vorkommt.
und zur erklärung sagt regex101.com
` > data: matches the characters data: literally (case sensitive)\s matches any whitespace character (equal to [\r\n\t\f\v ])
1st Capturing Group ([^}\s]+)
Match a single character not present in the list below [^}\s]+
- Quantifier — Matches between one and unlimited times, as many times as possible, giving back as needed (greedy)
} matches the character } literally (case sensitive)
\s matches any whitespace character (equal to [\r\n\t\f\v ]) `
Gruß
Rainer
-
Hallo alle zusammen,
ich bin neu hier und versuche (und verzweifle) seit Tagen, mit dem RegEx einigermaßen klar zu kommen. Dank der vielen Kommentare bin ich auch schon deutlich weiter gekommen, scheitere aber nun an der Auswertung der https://www.neuwetter.de/wetter-deutschland/niedersachsen/wetter-braunschweig/r10740.html Seite, um z.B. die Windrichtung zu extrahieren.
Versucht habe ich es mit diversen Ausdrücken....
Windrichtung.\s.>(.*)<
<td class="descvalue"><a href="/windspitzen.html">Höchste Windspitze</a></td>
<td class="colvalue">17 Km/h</td>
</tr>
<tr>
<td class="descvalue"><a href="/windrichtung.html">Windrichtung</a></td>
<td class="colvalue">Osten</td>
</tr>
<tr>
<td class="descvalue"> </td>
<td class="colvalue"> </td>
Das Ergebnis ergibt im RegEx Tester Osten, aber im Parser sieht das Ergebnis so aus:Ich hoffe hier noch Hilfe zu bekommen ,ob wohl ja schon länger nichts mehr passiert ist.
Gruß
Gerhard -
sorry, beim kopieren hat sich beim RegEx ein Fehler eingeschlichen: Windrichtung.\s.>(.*)<
-
@eb0klud
Versuche es mal mitWindrichtung.+\s.+>(.+)<
-
Danke Paul, aber das Ergebnis bleibt dasselbe......kein Ergebnis, kein Fehler