Hauptmenü

Parsen

Begonnen von LotharRappsilber, 18 April 2024, 15:51:06

Vorheriges Thema - Nächstes Thema

LotharRappsilber

Hallo zusammen,

ich arbeite unter windows. Da ich trotz "cpan install Finance::Quote" Shares und ShareMaster nicht nutzen kann, versuche ich die Kurse auf andere Weise zu holen. Das gelingt mir auch größtenteils. Nur Kurse von einigen Aktien sind nicht da, obwohl die Prozentualen Veränderungen angezeigt werden und der Code zum Parsen richtig ist. Hat jemand eine Idee? Mein Code:

define Aktie_Linde HTTPMOD https://www.finanznachrichten.de/nachrichten-aktien/linde-plc.htm 300
setuuid Aktie_Linde 6540efd0-f33f-9284-a3b6-48716b86fe5d0b1e
attr Aktie_Linde alias Linde
attr Aktie_Linde reading01Name Kurs
attr Aktie_Linde reading01OExpr $val =~ s/\,/./g;; $val ## Umwandlung des Dezimalkommas in Dezimalpunkt
attr Aktie_Linde reading01Regex aktie-gleich">(\d+\.\d+)"
attr Aktie_Linde reading02Name Prozent
attr Aktie_Linde reading02OExpr $val =~ s/\,/./g;; "$val %"
attr Aktie_Linde reading02Regex data-field="RelDiff">([+\-,\d+\,\d+]+)
attr Aktie_Linde room Boerse
attr Aktie_Linde stateFormat Kurs, Prozent
attr Aktie_Linde timeout 5
attr Aktie_Linde userReadings holeInOne {ReadingsVal($NAME,"Kurs","")." ".ReadingsVal($NAME,"Prozent","")}
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

betateilchen

#1
ZitatAktienkurse
Zitatregex
ZitatParsen

Es nervt langsam, kannst Du Dir nichtmal die Mühe machen, SINNVOLLE Thread-Titel zu verwenden?

Ich finde Deine Ignoranz diesbezüglich inzwischen ziemlich übel.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

LotharRappsilber

Ich weis es nicht besser. Ist Parsen nicht aussagekräftig genug? Was wäre sinnvoll?
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

TomLee

Hallo,

aktie-gleich">(\d+\.\d+)"
du hast den Punkt maskiert, darum matcht nur Punkt und kein beliebiges Zeichen und hinten die Hochkomma gibts in dem Quelltext nicht.

Thomas

LotharRappsilber

#4
Hab das jetzt so geändert.

reading01Regex data-field="Bild">(\d+\.\d+)"</span>

Geht trotzdem nicht!
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

betateilchen

Zitat von: LotharRappsilber am 18 April 2024, 16:16:40Ich weis es nicht besser. Ist Parsen nicht aussagekräftig genug? Was wäre sinnvoll?

Lesen...

https://forum.fhem.de/index.php?msg=105687



Mit der richtigen regex funktioniert es einwandfrei.

defmod linde HTTPMOD https://www.finanznachrichten.de/nachrichten-aktien/linde-plc.htm
attr linde reading01Regex data-field="Rate">([\d,]+)

setstate linde 2024-04-18 16:45:29 reading01 422,80
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TomLee

data-field="Bid">(\d+\.\d+)"</span>
auch das gibts nicht im Quelltext data-field="Bid">WERT
kommt zweimal im Quelltext vor, beide mal gefolgt von </td><td ... und Komma als Dezimaltrenner. Gefolgt von "</span> seh ich nicht ?

Wie wärs mit:

data-field="Rate">(\d+\,\d+)

betateilchen

Zitat von: TomLee am 18 April 2024, 16:57:17Wie wärs mit:

data-field="Rate">

das hab ich doch auch schon vorgeschlagen...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

LotharRappsilber

Danke TomLee!!! Hat funktioniert!
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

TomLee

Ähm, nur so das man mal darüber gequatscht hat. Mein gezeigter regulärer Ausdruck passt auch (das Komma muss net unbedingt maskiert werden), aufgeschrieben hab ich mir jetzt auf jedenfall fürs nächste Mal die Variante die Betateilchen vorgeschlagen hat.