Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Auslesen von Daten einer Webseite mit Javascript

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Auslesen von Daten einer Webseite mit Javascript

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User last edited by

      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
      
      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      936
      Online

      31.8k
      Users

      80.0k
      Topics

      1.3m
      Posts

      1
      1
      828
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo