NEWS
Adapter - Parser (regEx)
-
@hannoi sagte in Adapter - Parser (regEx):
Genau das Komma suche ich in den Objekten
Aber du hast doch auch kein Komma im Match, oder?
-
Hier noch der Link mit dem Quellcode und dem Regex
-
@hannoi sagte in Adapter - Parser (regEx):
finde ich dort nur den Wert ohne Punkt angezeigt:
-
Okay verstanden, dann ist das "Komma" nicht mit dem "Punkt" gleichzusetzen als Trennzeichen.
-
@Homoran
Perfekt klappt! Dann war es mein Denkfehler!!! DANKE NOCH MAL -
@hannoi sagte in Adapter - Parser (regEx):
Okay verstanden, dann ist das "Komma" nicht mit dem "Punkt" gleichzusetzen als Trennzeichen.
So ist es.
Wenn das Regex ein Komma hat nimmt man Zahl mit KOMMA
-
Die Alternative ist per Skript und JQuery eigentlich noch einfacher.
Die Seite ruft die Daten als JSON ab. Ich habe dir hier mal den cURL-Befehl kopiert, mit dem der Abruf auf einer Linux-Console direkt funktioniert. Über die Developer-Tools von chrome und Firefox kannst du dir das direkt anschauen.curl 'https://abfahrten.hvv.de/api/monitors/75870033-9dd4-41c0-81bb-903c93fdc819' -H 'Pragma: no-cache' -H 'DNT: 1' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36' -H 'Content-Type: application/vnd.api+json' -H 'Accept: application/json, text/plain, */*' -H 'Cache-Control: no-cache' -H 'Referer: https://abfahrten.hvv.de/75870033-9dd4-41c0-81bb-903c93fdc819' -H 'Cookie: BT_sdc=eyJldF9jb2lkIjoiTkEiLCJyZnIiOiJodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC8iLCJ0aW1lIjoxNTYwMjkxODIwNTY3LCJwaSI6MCwiZXVybCI6Imh0dHBzOi8vYWJmYWhydGVuLmh2di5kZS83NTg3MDAzMy05ZGQ0LTQxYzAtODFiYi05MDNjOTNmZGM4MTkiLCJyZXR1cm5pbmciOjAsImV0Y2NfY21wIjoiTkEiLCJzbXMiOm51bGwsIm5vV1MiOiJBdzNVS2IifQ%3D%3D; _et_coid=ff32f3a7e7a0381366c02efa37fc81ef' -H 'Connection: keep-alive' --compressed
Darüber hinaus bieten die direkt auch eine API nach Antrag an: https://www.hvv.de/de/fahrplaene/abruf-fahrplaninfos/datenabruf
und über open-data scheint es auch was zu geben https://www.opendata-oepnv.de/pages/api
ein node-lib gibt es auch, aber nur mit den beantragten Zugangsdaten https://github.com/lionralfs/hvv -
Vielen Dank für die Arbeit! Ich schaue es mir mal an, momentan verstehe ich noch nichts davon. Ich freue mich schon über minimale Html und gute Excel-Kenntnise meinerseits
-
hm, dann wird es eine kleine Herausforderung. Du brauchst noch Javascript Kenntnisse
-
Gibt es eine Möglichkeit auf Passwortgeschützte Seiten mit dem Parser zu kommen?
Ich würde gerne Werte meiner easybox auslesen, aber die verlangt einen login (ohne user, nur password). -
Eine Verständnisfrage: wenn ich von einer Internetseite ca. 100 separate Datenpunkte mit 100 regEx Ausdrücken füllen möchte, wird diese Internetseite dann bei jedem regEx-Datenpunkt separat runtergeladen, oder wird die nur einmal runtergeladen und im Cache gehalten? Ich habe für alle RegEx-Datenpunkte das Poll-Intervall extra auf "default" gelassen, damit alle gleichzeitig ausgeführt werden.
Wenn die Internetseite bei jedem einzelnen regEx-Datenpunkt nochmal runtergeladen wird, ist mir das zu viel Traffic (da ich die Werte minütlich aktualisieren möchte, wäre das schon spürbarer Internettraffic durch die ganzen Hintergrundbilder etc. auf der Internetseite und auch viele Schreiboperationen auf meiner SD-Karte).Oder (wie) kann man die Internetseite (z.B. mit dem Adapter) nur einmal komplett runterladen, und die RegEx dann auf diese "offline" Version bzw. diesen Datenpunkt loslassen?
Falls das nicht elegant gehen sollte, eine zweite Frage: (wie) kann man das polling der RegEx-Regeln ausschließlich manuell initiieren? Also indem man z.B. einen Datenpunkt auf true setzt und dann nur solange dieser Datenpunkt true ist, jede Minute ein Mal gepollt wird.OnTop oder noch eine andere Variante: da es eigentlich nur 10 unterschiedliche RegEx Ausdrücke sind, die jeweils 10 Fundstellen auf der Seite haben, würde es schon sehr helfen, wenn ich wüsste, wie ich diese 10 Fundstellen pro RegEx-Ausdruck in einem ioBroker-Datenpunkt (mit Indizes?) ablegen und dann mit VIS darstellen (bzw. über JavaScript auslesen) könnte. Kann man so eventuell auch schon etwas Traffic einsparen?
Danke!
-
@radioman
Wenn bei allen Datenpunkten die gleiche URL hinterlegt ist, wird diese 1mal pro Interval abgerufen und dann laufen alle deine 100 regex darüber. Es wird nur der html Code abgerufen, keine Medien, Bilder usw., d. h. deine Bedenken bzgl Traffic sind unbegründet.