NEWS
Auslesen von Daten einer Webseite mit Javascript
-
Hallo zusammen,
Ich habe ein Python Script das werte von meiner Heizung über das Web ausliest.
Momentan Läuft es so das Script liegt auf meinem IoBroker Server und über Node Red ruf ich das Script auf hole mir die werte speicher diese in einer Text Datei ab und holen mir dann aus der Text Datei die werte mit Node Red und übergebe sie dann in den IoBroker funktioniert super.
Jetzt möchte ich das aber nicht mehr und Möchte gerne das Script in Javascript habe da ich aber noch ganz am Anfang bin was Javascript angeht bekomme ich das leider nicht hin.
Über den Parser Adapter Funktioniert es leider nicht da man sich auf der Seite Anmelden muss und im Hintergrund ein authenticity token gibt.Gibt es einen Schlauen Kopf der mir da weiter Helfen kann.
Vielen dank schon mal im voraus.
import requests from lxml import html import socket # Get login data from an external file USERNAME = "username" PASSWORD = "password" # Get url´s from an external file URL_LOGIN = "https://www.comfort-online.com/Account/Login?ReturnUrl=%2F" URL_UEBERSICHT = "https://www.comfort-online.com/de-DE" URL_KESSEL = "" # Init lists nameList = list() valList = list() # Init session session_requests = requests.session() # Get login token result = session_requests.get(URL_LOGIN) tree = html.fromstring(result.text) authenticity_token = list(set(tree.xpath("//input[@name='__RequestVerificationToken']/@value"))) # Create payload payload = { "UserName": USERNAME, "Password": PASSWORD, "__RequestVerificationToken": authenticity_token } # Perform login result = session_requests.post(URL_LOGIN, data = payload, headers = dict(referer = URL_LOGIN)) # Uebersicht-Elemente UE_ result = session_requests.get(URL_UEBERSICHT, headers = dict(referer = URL_UEBERSICHT)) tree = html.fromstring(result.content.decode('UTF-8')) nameList.append("UE_Name") valList.append("Uebersicht") nameList.append("UE_KE_TempIst [°C]") UE_KE_TempIst = tree.get_element_by_id("val_000_00589").text valList.append(UE_KE_TempIst) nameList.append("UE_KE_RuecklaufTempIst [°C]") UE_KE_RuecklaufTempIst = tree.get_element_by_id("val_000_00590").text valList.append(UE_KE_RuecklaufTempIst) nameList.append("UE_HK_VorlaufTempIst [°C]") UE_HK_VorlaufTempIst = tree.get_element_by_id("val_002_00336").text valList.append(UE_HK_VorlaufTempIst) nameList.append("UE_BW_TempIst [°C]") UE_BW_TempIst = tree.get_element_by_id("val_001_00487").text valList.append(UE_BW_TempIst) nameList.append("UE_PU_TempOben [°C]") UE_PU_TempOben = tree.get_element_by_id("val_000_00442").text valList.append(UE_PU_TempOben) nameList.append("UE_PU_TempUnten [°C]") UE_PU_TempUnten = tree.get_element_by_id("val_000_00446").text valList.append(UE_PU_TempUnten) file=open("/home/jonas/Iobroker/Werte.txt", "w") # Print data (Debug) for x,y in zip(nameList,valList): file.write(x) file.write(y) file.write("\n") # print(x,"\n-->",y) file.close