Daten aus Website mit Login auslesen

Begonnen von rcaspar, 29 Januar 2023, 23:05:17

Vorheriges Thema - Nächstes Thema

rcaspar

Hi All

Ich versuche mich schon seit geraumer Zeit an folgender Aufgabe.

Ich habe eine Website auf welcher man sich mit UserID und PW einloggen muss. Darauf sind diverse Daten enthalten, welche ich parsen möchte.

Wie schaffe ich es nun mittels HTTPMOD (zumindest glaube ich dies sei das richtige Modul) einzuloggen?
Und danach dann die Daten auszulesen?

Aber einloggen ist schon mal die erste Hürde  >:(

Merci für Tipps
René

sash.sc

#1
Auf der Seite einloggen und sich den dann folgenden link anschauen. Da wird die ID und das pw drin stehen. Dann hast du die Definition für httpmod
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

rcaspar

Es gibt eine Login-Seite, danach erst erscheint die effektive Seite mit dem relevanten Dateninhalt. Also leider keine Basic Auth wo du UID uns PW mitgeben kannst in der URL

rudolfkoenig

Ein "klassisches" Backend setzt nach dem Anmelden ein Cookie, was bei nachfolgenden Anfragen geprueft wird.

Wenn(!) das der Fall ist, muss man in FHEM nach Senden der Logindaten aus dem HTTP-Header der Antwort dieses Cookie rausfischen, und bei nachfolgenden Anfragen senden.
Weiss nicht, ob in HTTPMOD dieses Verfahren implementiert ist.
Wenn nicht, dann kann man in einer eigener Perl-Routine in 99_myUtils.pm zwei Http_NonblockingGet Abfragen absetzen, das Cookie aus $hash->{httpheader} des ersten Aufrufs rausfischen, und es in $hash->{header} des zweiten Aufrufs mitgeben.

Stelaku

Hallo rcaspar

Ich bin kein Experte mit httpmod aber ich habe das vor längerem schon einmal gemacht.
Sehr geholfen hat mir dieser thread.
https://forum.fhem.de/index.php/topic,68452.msg599313.html#msg599313
vom Prinzip her musst du das login auf der abzufragenden website mit httpmod nachstellen
um die notwendigen daten dafür zu bekommen habe ich mit burp suit mein log in auf der abzufragenden web site mitgeschnitten und diese daten dann im httpmod
eingetragen
dafür sind unter anderen die attr
enableCookies
sid1Data


Ist alles schon lange her und als es geklapt hat brauchte ich es ja nicht mehr funktioniert bis heute.

viele Grüsse

Stephan




rcaspar

Hi Stephan

Habe mir mal die Burp Suite gezogen und seh nun, was da beim Login passiert. Ich sehe UID und PW welche gesendet werden und ein Token, welcher anschliessend benutzt wird.

Allerdings bin ich so ein Programmier-DAU, dass ich das nicht so einfach zusammenbringe. Kann mir da jemand unter die Arme greifen?

Merci
René

Wernieman

Bin da auch nicht fitt, aber für alle eventuell Helfenden könntest Du verraten, um welche Webside es geht ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rcaspar

Es geht um folgende WebSite: https://meine-energie.elektra.ch

Denke aber, dass diese Information alleine nicht reicht. Müsste wissen, wer, welche INfo benötigen würde.

René

loescher

Hallo Rene,

Was immer geht, ist ein bischen Code mit dem Perl Modul Firefox::Marionette.
Aber etwas programmieren solltest du dazu schon können.
Mit dem Modul wird eine HTML-Seite "fernbedient" im Firefox geöffnet, so wie du das manuell auch machen würdest.
Und dann muss man nur noch die Daten extrahieren.
Damit kann man wirklich ALLE Webseiten auslesen.
Siehe:
https://forum.fhem.de/index.php/topic,128247.msg1233478.html#msg1233478

LG,
Stephan.

rcaspar

Hi Stephan's

Merci für den Input - bin aktuell etwas ausgelastet und daher nicht viel dran, aber ich habe mal mit Burp und Marionette gesehen, dass unglaublich viele Requests laufen und Daten hin und her schicken.

Ich werde mich mal in einer etwas ruhigeren Minute hinsetzen müssen und versuchen herauszufinden, welche Gesetzmässigkeiten herrschen.

Mal schauen, ob ich weiterkomme - merci jedenfalls schon mal für euren Input

ich schwimme weiter...
René