[gelöst] HTTPMOD Strava.com

Begonnen von jeti, 27 Dezember 2017, 19:25:49

Vorheriges Thema - Nächstes Thema

jeti

Hallo zusammen,
ich versuche gerade meine geradelte Strecke in Fhem zu bekommen. ich habe versucht mich am Wiki und dem Spritreis HTTPMOD entlangzuhangeln, aber leider bisher erfolglos, ich weiss nichtmal so recht wo mein Fehler liegt...
Die Quelle ist:
https://www.strava.com/athletes/2901080

hier gibts im Quelltext:

<tbody>
<tr>
<th>Distanz</th>
<td>5.750,4<abbr class='unit' title='Kilometer'>km</abbr></td>
</tr>
<tr>
<th>Zeit</th>
<td>219<abbr class='unit' title='Stunde'>h</abbr> 29<abbr class='unit' title='Minute'>min</abbr></td>
</tr>
<tr>
<th>Höhenmeter</th>
<td>42.242<abbr class='unit' title='Meter'>m</abbr></td>
</tr>
<tr>
<th>Radfahrten</th>
<td>124</td>
</tr>
</tbody>


unter "Distanz" die "5.750,4" genau die will ich haben.

bisher habe ich:


defmod Strava_grab HTTPMOD https://www.strava.com/athletes/2901080
attr Strava_grab userattr reading01Name reading01Regex
attr Strava_grab DbLogExclude .*
attr Strava_grab reading01Name Distanz
attr Strava_grab reading01Regex <th>Distanz</th> <td>(.*)
attr Strava_grab stateFormat km Rad: Distanz
setstate Strava_grab km Rad: Distanz


es wird aber kein Reading erzeugt  :(
Hängt es am Regex oder woanders?

unter httpheader steht:
ZitatHTTP/1.1 200 OK Cache-Control: max-age=0, private, must-revalidate Content-Encoding: gzip Content-Type: text/html; charset=UTF-8 Date: Wed, 27 Dec 2017 18:16:03 GMT ETag: W/"8f964972560d6e33bed7d549d8f46ab3" Set-Cookie: _strava3_session=BAh7CkkiD3Nlc3Npb25faWQGOgZFVEkiJTU2MWNiOTQxMGJjMjRlMzhhY2IwNWNmMzI2NmQ2MjU5BjsAVEkiEGNsZWFyX2NsaWNrBjsARlRJIhNhZnRlcl9hdXRoX2tleQY7AEZJIhJhdGhsZXRlcyNzaG93BjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMTRpV1FMSHVhMkZRVSt5Z1Y1U0d3QzlEN3k0SkZhWUZaeXJMTzVHYlEzM2M9BjsARkkiCmZsYXNoBjsAVG86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaH0GOhVicmFuY2hfaW5zdGFsbGVkVEY6DEBjbG9zZWRGOg1AZmxhc2hlc3sHOhFzbWFydF9iYW5uZXJ7BjoMb3B0aW9uc3sKOglwYXRoSSIVYXRobGV0ZXMvMjkwMTA4MAY7AFQ6DWNhbXBhaWduMDoMY2hhbm5lbEkiD21vYmlsZSB3ZWIGOwBUOgxmZWF0dXJlSSIRYXRobGV0ZSBzaG93BjsAVDoOcGVla19kYXRhRjsKOhdhcHBsaWNhdGlvbl9sYXlvdXQ6CUBub3dvOiRBY3Rpb25EaXNwYXRjaDo6Rmxhc2g6OkZsYXNoTm93BjoLQGZsYXNoQA4%3D--b11227fc5d34995f235a40d66df58ebb1d758dd8; domain=strava.com; path=/; HttpOnly Status: 200 OK X-FRAME-OPTIONS: DENY X-Request-Id: ce24315d980cdcd45dbed5d2ed087fe6 X-UA-Compatible: IE=Edge,chrome=1 Content-Length: 13325 Connection: Close

ist mein erstes HTTMOD
Danke und Gruß



jeti

hat niemand eine Idee?

gibt es andere Wege Daten aus http-Seiten zu extrahieren?

ph1959de


  • was steht im "buf" deines HTTPMOD? Objekts
  • funktioniert dein Regex gegen den "buf" Inhalt in einem Regex-Tester (z.B. https://regex101.com/)?
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

ares

attr Strava_grab reading01Regex (?s)>Distanz<.+?([0-9.,]+)

jeti

#4
@ph1959de:
1. habe es eben gelesen, was der "buf" ist, aber wo finde ich den? habe eben global auf verbose 5 gestellt, aber auch kein buf:
Zitat
2017.12.29 22:31:25 4: Strava_grab: GetUpdate called (update)
2017.12.29 22:31:25 4: Strava_grab: update timer modified: will call GetUpdate in 300.0 seconds at 2017-12-29 22:36:25
2017.12.29 22:31:25 5: Strava_grab: GetUpdate called but device is disabled

EDIT: Oh Mann... ich hatte ja gestern das Device disable = 1 gesetzt, das steht nun im Log  :-[

2. Danke die Seite kannte ich noch nicht -> da werde ich etwas Spielen und Probieren :-)

@ares:
Danke, aber funktioniert auf Anhieb erstmal nicht, auch nicht auf https://regex101.com/

-EDIT_2: klappt auf https://regex101.com/!
sollte dies nun nicht ein Reading "Distanz" anlegen (oder muss ich das händisch machen?)

jeti

es geht!!

Lösung:
Regex von ares:
attr Strava_grab reading01Regex (?s)>Distanz<.+?([0-9.,]+)

aber auf englisch:
attr Strava_grab reading01Regex (?s)>Distance<.+?([0-9.,]+)

da gibt es anscheinen verschiedenen https für Sprachen, jetzt gehts!

vielen Dank für die Hilfe!