FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: rodnic am 13 Februar 2020, 00:53:11

Titel: Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 13 Februar 2020, 00:53:11
Ich möchte gern Aktienkurse mit dem HTTPMOD aus einer Webseite auslesen.
Dazu habe ich ein HTTPMOD gerät angelegt.
und mit der Webseite "https://www.onvista.de/index/DAX-Index-20735" verknüpft.
Nun möchte ich hier gerne den aktuellen DAX Stand auslesen.
Dazu habe ich das Attribut "reading01Name:DAX"   angelegt
Und dann noch das Attribut "reading01Regex: <span class="top-assets__name"> DAX </span>[\S\s\r\n]*?<span class="top-assets__price">\d+">(\d.\d{2})<\/span>"

leider werden nun keine Readings angelegt.
Wo liegt mein fehler?
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: amenomade am 13 Februar 2020, 01:47:34
Richtige Regex:
<span class="top-assets__name"> DAX <\/span>[\S\s\r\n]*?<span class="top-assets__price">.([\d\.,]+)

Performanter mit nur:
DAX <\/span>[\S\s\r\n]*?<span class="top-assets__price">.([\d\.,]+)
(2450 steps statt 10913 - 2x schneller)

Deine Regex kannst Du hier testen: https://regex101.com/
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: gent am 13 Februar 2020, 20:51:51
( geht mich ja nix an, aber: Die Seite von Dir ist ja ziemlich mit Werbung übersät. Da gibt's doch sicher weniger zugemüllte Seiten für den DAX )

Viele Grüße
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 14 Februar 2020, 18:14:33
a.) STOCKQUOTES verwenden und
b.) yahoo_json als Quelle, vermeidet den Werbemüll

LG

pah
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 19 Februar 2020, 17:01:46
Yahoo geht doch nicht mehr oder?

https://forum.fhem.de/index.php/topic,33352.0.html
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 21 Februar 2020, 09:39:46
Ich nochmal,

die Antwort von "amenomade" hatte geholfen.
Die Abfrage funktionierte gut.
Nun, seit ca. 3 tagen geht diese Abfrage nicht mehr.
Könnte nochmal Jemand die Syntax überprüfen, ob sich auf den ONVISTA Webseite eventuell etwas geändert hat.
"data-push="20735:last:2:1:Index" steht jetzt zusätzlich vor dem aktuellen Kurs, wie könnte man das auskomentieren?

Danke
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: amenomade am 21 Februar 2020, 19:58:20
- Seite aufrufen. Rechtklick auf der Seite > Quellcode
- Copy Paste auf https://regex101.com/
- Copy Paste der jetzige Regex. Wenn kein Treffer, die Regex nach und nach kürzen, und dann entspr. wieder bauen.

Ja, die Seite hat sich anscheinend geändert. Aber niemand hier wird regelmässig die Regex aktualisieren
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: amenomade am 22 Februar 2020, 00:52:55
Alternativ: Du holst dir die Daten in einem vernünftigen Format und nicht aus einer Webseite.

Z.B. hier als json: https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=demo

Doku hier: https://www.alphavantage.co/documentation/

EDIT: auf alphavantage ist das "symbol" für DAX ^GDAXI
Also https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=^GDAXI&apikey=DEIN_API_KEY (https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=%5EGDAXI&apikey=DEIN_API_KEY)
Oder https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=^GDAXI&apikey=DEIN_API_KEY (https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=%5EGDAXI&apikey=DEIN_API_KEY)

https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=^GDAXI&apikey=O9D8IE8HBGFI90Y9 (https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=%5EGDAXI&apikey=O9D8IE8HBGFI90Y9)
(random API key)


Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 22 Februar 2020, 10:10:53
Okay, die letzte Antwort klingt sehr interesant. Wie baue ich da nun am einfachsten die regex daraus.

Über die Seite "https://regex101.com/" ?
Gibts da neu einfache Anleitung dazu?
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: carlos am 22 Februar 2020, 11:01:42
Habe ich hier mal als Beispiel mit der SAP Aktie gemacht:



https://forum.fhem.de/index.php/topic,33352.msg1012401.html#msg1012401
(https://forum.fhem.de/index.php/topic,33352.msg1012401.html#msg1012401)

Gruß

Carlos
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 22 Februar 2020, 11:30:09
OK, das hat geholfen.
Aber gibt es irgendwo ne deutsche Erklärung für die Regex101 Seite?
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 22 Februar 2020, 12:03:07
wie finde ich auf alphavantage das Symbol bzw. Kürzel für den S&P 500 heraus?
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: carlos am 22 Februar 2020, 15:15:21
Nimm doch einfach den "search endpoint" API call aus der doku.
Gruß

Carlos
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 22 Februar 2020, 18:37:37
Leider verstehe ich so garnicht was hier zu tuen ist.
Die Doku sagt mir leider auch nichts. habe zwar den "search endpoint" gefunden aber wie benutzt man das?
Bzw. wo findet man das Suchfeld?
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: carlos am 23 Februar 2020, 11:34:14
Jetzt aber, so schwer ist das doch nicht, steht doch alles dort beschrieben.
Aber ich kann es dir auch noch mal beschreiben:
Hol dir einen API key nimm das Beispiel das in der Doku steht und setzte bei keywords= deinen Suchbegriff ein.
Gruß

Carlos
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 23 Februar 2020, 12:05:25
Einen API Key habe ich schon ne Weile, brauche ich ja im FHEM auch.

Aber wo gebe ich das ein bzw. wo finde ich das Suchfeld?
Mir fehlt irgendwie der Anfang.
Finde ich das Suchfeld auf der Seite von  "alphavantage" oder muss ich das irgenwo im Browser eingeben oder in nem Excel Tool oder wo?
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: rodnic am 23 Februar 2020, 13:31:27
Ja danke für den Hinweis, den API Key habe ich schon länger.
Aber wo genau soll ich das beispiel eingeben bzw. zur Anwendung bringen?
Im Excel, im Browser oder wo?
Mir fehlt da irgendwie der erste Ansatz.
Titel: Antw:Aktienkurse mit HTTPMOD
Beitrag von: carlos am 23 Februar 2020, 14:05:59
Jetzt schreib ich es noch mal: >:(
Nimm das Beispiel aus der Doku ersetzte das Wort demo mit deinem API key und bei keywords= deinen Suchstring.
Das ganze ist dann eine URL und die gibst du dann in deinem Browser ein.


Gruß
Carlos