NEWS
Mal wieder Webseite auslesen
-
Ich habe nach der Änderung der Bewertung der "Corona-Situation" auch die neuen Kennzahlen (Intensivbelegung und Hospitalisierung) grafisch dargestellt.
Die Daten hatte ich nur für NRW gefunden ( https://www.lzg.nrw.de/inf_schutz/corona_meldelage/index.html ) und über den Parser-Adapter ausgelesen.
Als sich vor ein paar Tagen die Werte nicht mehr änderten, habe ich mir die Seite noch mal angesehen und mit Schrecken festgestellt, dass diese erst gar nicht mehr zu shen waren und jetzt dynamisch über eine Datenbank erzeugt werden.
Zwischendrin hatte ich die Werte beim Ministerium gefunden ( https://www.mags.nrw/coronavirus-fallzahlen-nrw ). Das sind die selben, die jetzt wieder bei der LZG auf der Seite sind.
Das einzige was ich herausbekommen hatte ist, dass die Darstellung im Frame hier generiert werden ( https://www.lzg.nrw.de/covid19/covid19.html ), aber nicht wo die Rohdaten sind.
Kann mir hier jemand helfen?
oder eine andere Quelle für diese Daten zeigen? -
@homoran die kriegst du so nicht abgegriffen.. die werden dynamisch ohne id generiert
du köntest dir aus dem Source mal evtl. die Daten ausziehen
view-source:https://www.lzg.nrw.de/covid19/covid19.html
dann siehst du was die Seite liefert..vor allem oben in den .js Dateien
-
@arteck sagte in Mal wieder Webseite auslesen:
@homoran die kriegst du so nicht abgegriffen.. die werden dynamisch ohne id generiert
du köntest dir aus dem Source mal evtl. die Daten ausziehen
view-source:https://www.lzg.nrw.de/covid19/covid19.html
dann siehst du was die Seite liefert..vor allem oben in den .js Dateien
das habe ich bereits gemacht - ohne Erfolg
gerade habe ich im code gefunden :
daten/covid19_5.csv
wenn ich das an
https://www.lzg.nrw.de/covid19/
dranhänge bekomme ich eine excel-Liste, in der ich bisher nur die aktuelle ITS-Belegung direkt gefunden habe.
Ob ich damit die anderen Daten berechnen könnte wäre vielleicht noch möglich.https://www.lzg.nrw.de/covid19/daten/covid19_5.csv
-
Bin inzwischen etwas weiter.
Die Daten sehen so aus:
im Prinzip ist alles vorhanden
Leider schaffe ich es nicht an die Daten mit dem Parser Adapter zu kommen, so dass es auch automatisch funktionieren würde, wenn die Tabelle länger wird oder die Stellen der Zahlen sich ändern.
-
denke, da musst du mit https://www.npmjs.com/package/csv arbeiten, damit du die daten bekommst
-
@liv-in-sky sagte in Mal wieder Webseite auslesen:
denke, da musst du mit https://www.npmjs.com/package/csv arbeiten, damit du die daten bekommst
Ja, das habe ich auch befürchtet.
Nix Parser - js!!Auch wenn du mir das mit replace schon mal versucht hast beizubringen ist das noch nicht durchgeschaltet
-
habe mal das file auf den iobroker server kopiert und ausgelesen - das auszuwerten ist vieeeeeeel aufwand
zum testen
csv-parse und fs muss installiert sein im javascript-adapter setting
die datei habe ich unter /Daten/covid19_5.csv gespeichertvar parse = require('csv-parse'); var input = require('fs').readFileSync('/Daten/covid19_5.csv').toString(); parse(input, {comment: '#'}, function(err, output){ // show result console.log(JSON.stringify(output)); for(let r=0;r<output.length;r++){ log(output[r][6]) } }); });
im log sind zuerst die daten als json zu sehen und anschliessend alle verstorbene pro eintrag
-
@liv-in-sky sagte in Mal wieder Webseite auslesen:
anschliessend alle verstorbene pro eintrag
r=6
ich brauche u.a. die Spalte BN, das wäre IMHO 46???
-
-
@liv-in-sky sagte in Mal wieder Webseite auslesen:
welche meinst du - das sind die spalten
65
wie im ersten Screenshot die neuen Leitindikatoren: (7T-Inzidenz, 7T-Hospitalisierung, Anteil belegte Intensivbetten)
letzteres ist die letzte Spalte -
und was genau brauchst du - die summe ? der jeweiligen spalten ?
-
@liv-in-sky sagte in Mal wieder Webseite auslesen:
und was genau brauchst du - die summe ? der jeweiligen spalten ?
Jetzt wird's "einfach"
immer den aktuellen Wert des Tages, damit es geloggt und über eCharts grafisch dargestellt werden kann.
wie ich dann die bisherigen Datenpunkte in die Reihe bekomme ist dann meine zweite Aufgabe7T-Hospitalisierung wäre
rateHospitalisiert7Tage
/1000 =1,18% (Spalte 37)
7T Inzidenz:rateM7Tage
/1000=57,5 (Spalte 35)
Intensivbelegung:anteilITSBetten
*100
frag mich nicht warum die ersten beiden durch 1000 geteilt werden müssen -
@homoran sagte in Mal wieder Webseite auslesen:
(7T-Inzidenz, 7T-Hospitalisierung
bitte die genaue nummer der beiden - die 65 ist klar - ist der letzte wert
was du genau brauchst, habe ich immer noch nicht gecheckt - brauchst du 3 werte eines bestimmten landkreises oder eine summe aller landkreise
ich weiß auch nicht wirklich, welcher kreis , welche zeile ist - es steht ja überall 5 unter dem wert kreis
-
das sehe ich doch richtig - du brauchst nur die daten einer bestimmten zeile/eines landkreises
-
@liv-in-sky sagte in Mal wieder Webseite auslesen:
du brauchst nur die daten einer bestimmten zeile/eines landkreises
die Zeilen sind die Tage - und da den jeweiligen Tag, an dem das Skript läuft.
Müsste immer die letzte Zeile sein, resp. nach Datum=date() (Spalte2/3)
(ich würde einmal am Tag (0 10 * * *) oder zweimal (0 10,22 * * *) abrufenWarum oben "Kreis" steht habe ich noch nicht rausgefunden, da die gefundenen Zahlen bis auf den jeweiligen Faktor die Werte auf der Website für NRW ergeben.
@liv-in-sky sagte in Mal wieder Webseite auslesen:
bitte die genaue nummer der beiden
hab oben editiert
-
@homoran ok - mach mich mal an die arbeit
-
bitte testen- du mußt die datenpunkte im blockly noch richtig eintragen
die webseite wird direkt ausgelesen - die datei wird mit request geholt
die berechnungen sind schon im script
-
@liv-in-sky sagte in Mal wieder Webseite auslesen:
die berechnungen sind schon im script
Supi, dann habe ich mich wohl geirrt und die Werte müssen nicht durch 1000 geteilt werden
Ich teste mal - DANKE
-
@liv-in-sky sagte in Mal wieder Webseite auslesen:
du mußt die datenpunkte im blockly noch richtig eintragen
werden die dann angelegt???
oder muss ich erst welche (Number) anlegen? -
musst du selbst anlegen