HTML; Livetiming-Webseite auslesen

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Hurga
User
Beiträge: 2
Registriert: Dienstag 4. Juni 2019, 10:24

Hallo,

für eine eigene Darstellung (private Datei) möchte ich die Webseite https://livetiming.azurewebsites.net/events/50/results
auslesen.
Mir geht es um die dargestellte (und regelmäßig aktualisierte) Tabelle mit den darin enthaltenen Werten.
Wenn ich mir den Quelltext anschaue, sind diese Werte aber gar nicht darin enthalten. Bin nicht so firm in dem Kram, denke aber mal, dass das etwas mit den Scripten zu tun hat, die dort ziemlich am Ende aufgeführt werden.

Hat jemand eine Idee, wie das trotzdem klappen könnte?
Bin ziemlicher Anfänger auf dem Raspi, daher bitte gaaaaaaanz langsam erklären. :wink:

Im Zweifel würde sogar folgendes gehen:
TAB im Browser aktivieren, über STRG+A alles auswählen, mit STRG+C in die Zwischenablage kopieren, geöffnete Kalkulationstabelle (Libre Office) aktivieren und mit STRG+V die Inhalte einfügen. Nur sollte das Ganze dann eben alle 30 Sekunden automatisch ablaufen. Nicht elegant - ich weiß - und auch nicht so ganz einfach, aber... in der Not frisst der Teufel Fliegen.
In der Libre Office-Kalkulationstabelle kann man auch einen Link zur Seite als Datenabfrage einfügen. Das funktioniert aber (wahrscheinlich wohl auch wg. der Scripte) leider nicht. Wenn da jemand eine Idee hat.... immer gerne.

Wie auch immer... vielen Dank im Voraus und viele Grüße

Hurga
__deets__
User
Beiträge: 14536
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die bauen einen Websocket auf. Das kannst du mit dem Debugger im Browser sehen, und dann im Network-Tab. Dann sehen die Daten so aus:

Code: Alles auswählen

{"PID":"0","RECNUM":"0","SND":"0","RCV":"0","VER":"2","EXPORTID":"50","HEATTYPE":"R","SESSION":"3900101104","NROFINTERMEDIATETIMES":"8","TRACKNAME":"Nürburgring","TRACKLENGTH":"25378","S1L":"2537","S2L":"2537","S3L":"2537","S4L":"2537","S5L":"2537","S6L":"2537","S7L":"2537","S8L":"3806","S9L":"3813","APL":"0","BEST":[[0,"00.000",0,"0"],[0,"00.000",0,"0"],[0,"00.000",0,"0"],[0,"00.000",0,"0"],[0,"00.000",0,"0"],[0,"00.000",0,"0"],[0,"00.000",0,"0"],[0,"00.000",0,"0"],[0,"00.000",0,"0"],[0,"00.000",0,"0"]],"TRACKSTATE":"0","HEATNUMBER":"1","CUP":"24h Qualifikationsrennen","HEAT":"Testrace","TOD":"1559555161592","RESULT":[{"POSITION":"1","RANK":"1","CLASSRANK":"1","CHG":"0","STNR":"1","ETA":"1557407633089","LAPS":"3","ETATOD":"k6:30:38.793","NAME":"Lietz/Makowiecki/Pilet/Tandy","CLASSNAME":"SP 9","CAR":"Porsche 911 GT3 R","ISQUA":"1","GAP":"----LAP 3","INT":"7:16.737","LASTLAPTIME":"1:35.914","FASTESTLAP":"1:35.914","PITSTOPCOUNT":"0","PITSUM":"000000.000","LASTINTERMEDIATENUMBER":"16","LASTIMTIME":"1559555161589","S1TIME":"","S1SPEED":"0.0","S2TIME":"","S2SPEED":"0.0","S3TIME":"","S3SPEED":"0.0","S4TIME":"","S4SPEED":"0.0","S5TIME":"","S5SPEED":"0.0","S6TIME":"","S6SPEED":"0.0","S7TIME":"","S7SPEED":"0.0","S8TIME":"","S8SPEED":"0.0","S9TIME":"","S9SPEED":"0.0","TOPSPEED":"0.0","TEAM":"Manthey-Racing","TPST":"","LLT":"3","LLC":"3"}]}
Du musst also den websocket selbst abfragen, dazu kannst du mal googeln wie das geht mit Python.

Eine Alternative besteht darin, Selenium zu benutzen, um einen Browser fernzusteuern. Auch das kann man mit Python machen.
Hurga
User
Beiträge: 2
Registriert: Dienstag 4. Juni 2019, 10:24

Cool. Danke! Muss ich mal ausprobieren. Komme ich aber heute wohl nicht mehr zu.
Antworten