Forum: PC-Programmierung Erzeugte Grafik einer Webseite "auslesen"


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tier (tier)


Lesenswert?

Hallo,

ich würde gerne eine Online erzuegte Grafik, die die 
Regenwahrscheinlichkeit der nächsten 2 Stunden darstellt, automatisiert 
auslesen ..

Mit curl (Linux) bekommt man alle Infos, aber eben nur nicht diese 
Grafik ..

.. hat jemand eine Idee, wie man hier automatisiert eine Screencopy 
machen könnte, möglichst ohne grafische Oberfläche ;-)

Mein Ziel ist es, dies grafische Vorhersage mit einem ESP32 inkl. 
Display darzustellen.

Und nein, die Wetter-Seite bietet die Roh-Daten nicht an, ist aber 
erfahrungsgemäß recht gut in dieser Kurzzeitprognose.

Freue mich über Tips ...

: Verschoben durch Moderator
von Wendels B. (wendelsberg)


Lesenswert?

Solange die Webseite geheim ist, wird kaum jemand etwas dazu sagen 
koennen.

von Georg M. (g_m)


Lesenswert?

Wendels B. schrieb:
> Webseite geheim

wetter.com

von Christoph db1uq K. (christoph_kessler)



Lesenswert?

Probeweise https://www.tagesschau.de/wetter/regenradar-deutschland

Firefox - Extras - Seiteninformation - Medien - irgendwo in der Liste
Die unterste Fundstelle war gerade eben:
https://www.tagesschau.de/wetter/regenradar/radarbilder/regenradar_tagesschau.de_gesamt_l_020_1725870900000.jpg

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Nur das Regenradar-Iframe:

https://www.tagesschau.de/wetter/regenradar/radarbilder/index.html

das tickert per Javascript der Reihe nach Bild-URLs durch...

Liste der URLs steht (mit Uhrzeit) im Seiten-Quelltext:
1
ra_files_l = [
2
 ["regenradar_tagesschau.de_gesamt_l_000_1725872100000.jpg", "", "", "10:55", "1000"],
3
 ["regenradar_tagesschau.de_gesamt_l_000_1725872400000.jpg", "", "", "11:00", "1000"],
4
 ["regenradar_tagesschau.de_gesamt_l_000_1725872700000.jpg", "", "", "11:05", "1000"],
5
 ["regenradar_tagesschau.de_gesamt_l_000_1725873000000.jpg", "", "", "11:10", "1000"],
6
 ["regenradar_tagesschau.de_gesamt_l_000_1725873300000.jpg", "", "", "11:15", "1000"],
7
 ["regenradar_tagesschau.de_gesamt_l_000_1725873600000.jpg", "", "", "11:20", "1000"],
8
 ["regenradar_tagesschau.de_gesamt_l_000_1725873900000.jpg", "", "", "11:25", "1000"],
9
 ["regenradar_tagesschau.de_gesamt_l_000_1725874200000.jpg", "", "", "11:30", "1000"],
10
 ["regenradar_tagesschau.de_gesamt_l_000_1725874500000.jpg", "", "", "11:35", "1000"],
11
 ["regenradar_tagesschau.de_gesamt_l_000_1725874800000.jpg", "", "", "11:40", "1000"],
12
 ["regenradar_tagesschau.de_gesamt_l_000_1725875100000.jpg", "", "", "11:45", "1000"],
13
 ["regenradar_tagesschau.de_gesamt_l_000_1725875400000.jpg", "", "", "11:50", 
14
15
usw...

5 verschiedene Auflösungen sind wählbar, Zeile mit "ra_files_l" ist 
"large" mit etwas unter 500x500 Pixeln.

Ansonsten sind die Dateinamen wohl auch leicht erratbar, ist ein 
unix-timestamp in ms...

: Bearbeitet durch User
von Tier (tier)


Lesenswert?

Wendels B. schrieb:
> Solange die Webseite geheim ist, wird kaum jemand etwas dazu sagen
> koennen.

https://www.donnerwetter.de/wetter/neuwied/DE21583.html

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Tier schrieb:
> https://www.donnerwetter.de/wetter/neuwied/DE21583.html

das ist eine SVG-Vektorgrafik.

Am einfachsten kriegst du die auf deinen ESP, wenn du nur die Rohdaten 
nimmst und dir damit selber eine Grafik zeichnest.

Wie du an die Daten kommst, verrät dir das JS auf der seite:

... var lon="7.4667";var lat="50.4332"; ...
1
function loadRainChart(t, e, a) {
2
  $.ajax({
3
    url: '//calc.donnerwetter.de/cgi-bin/rainforecast/get_rainforecast.py',
4
    data: {
5
      lon: e,
6
      lat: a
7
    },
8
    type: 'get',
9
    dataType: 'jsonp',


-> Kriegst zwei Arrays, eins mit Uhrzeiten und eins mit der 
Regenwahrscheinlichkeit im Bereich 0..1 dazu..

: Bearbeitet durch User
von Tier (tier)


Lesenswert?

wow - herzlichen Dank .. in runzel noch die Stirn, wie Du da an die 
Daten kommst, kann kein java ..

: Bearbeitet durch User
von Ein T. (ein_typ)


Lesenswert?

Εrnst B. schrieb:
>
1
> //calc.donnerwetter.de/cgi-bin/rainforecast/get_rainforecast.py
2
>

Da benutzt einer wirklich noch CGIs... :-)

von Εrnst B. (ernst)


Lesenswert?

Tier schrieb:
> wow - herzlichen Dank .. in runzel noch die Stirn, wie Du da an die
> Daten kommst, kann kein java ..

Ist Javascript, kein Java. Die beiden haben außer 5 Buchstaben im Namen 
nicht viel gemeinsam.

ist einfach nur ein GET mit Parametern.

in "curl" übersetzt:
1
curl 'https://calc.donnerwetter.de/cgi-bin/rainforecast/get_rainforecast.py?lon=7.4667&lat=50.4332'
2
3
-->
4
5
None({
6
"labels": 
7
["12:55", null, null, null, null, "13:20", null, null, null, null, "13:45", null, null, null, null, "14:10", null, null, null, null, "14:35", null, null, null, "14:55"], 
8
"values": 
9
[0.10593750476837158, 0.0, 0.24796874523162843, 0.1548437476158142, 0.24328124523162842, 0.3590624928474426, 0.16734374761581422, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
10
});

(das "None()" ist dem "JSONP"-Datenformat geschuldet. Einfach 
ignorieren.)

von Εrnst B. (ernst)


Lesenswert?

Ein T. schrieb:
> Da benutzt einer wirklich noch CGIs... :-)

Die benutzen auch noch "var" statt "let/const", jquery & Ajax statt 
"fetch" usw.
Die Seite ist halt technisch teilweise in den 1990ern stehengeblieben, 
teilweise sind aber auch modernere Sachen reingeschoben...
Egal, macht es nur leichter da ohne Session-Cookies, 
Cross-Origin-Gehampel usw. die Daten abzugreifen.

von Tier (tier)


Lesenswert?

Danke Ernst !!
Boah - umfall . . genial ....  ganz ganz herzlichen Dank !!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.