Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Link von Webseite heraus parsen. Vertretungsplan Schule

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    908

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Link von Webseite heraus parsen. Vertretungsplan Schule

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 4 Kommentatoren 2.2k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Offline
    C Offline
    Creator
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    die Schule meine Kindes bietet die Information an, ob was ausfällt und welche Unterrichtsstunde wie vertreten wird.

    Das schreit quasi danach im Vis dargestellt zu werden. :mrgreen:

    Leider ist das ein PDF Dokument und der Link dahin verändert sich bei jeder Aktualisierung.

    Zum Glück steht dieser aber auf der selben Stelle auf deren Webseite.

    Ich habe zwei Fragen weil mein Erfahrungen mit NodeJs überschaubar sind.

    Damit ich das PDF Laden kann brauch ich die URL in einem JS Objekt damit Vis da drauf zugreifen kann.

    Daher die erste Frage:

    Wie bzw. mit was sollte ich die Webseite nach dem Link parsen? Habe was gelesen von htmlparser2 aber eventuell gibt es ja auch noch andere vorhandene Boardmittel.

    Soweit bin ich bereits:

    var request = require('request');
    var url = 'http://wordpress.nibis.de/rsdelme/vertretungsplan-holbeinstrasse/';
    
    function getLink() {
        request(url, function(err, stat, body) {
            if(err) log('Error: ' + err, error);
    
            log(body);
    
        });
    }
    
    getLink();
    
    

    Die zweite Frage betrifft eher VIS, aber weil es dazu gehört :)

    Die PDF Datei würde ich super gerne in einem Dialog darstellen.

    Quasi Button welcher ein Dialog öffnet wo dann sofort das PDF dargestellt wird.

    Dazu jemand eine Idee?

    1 Antwort Letzte Antwort
    0
    • C Offline
      C Offline
      Creator
      schrieb am zuletzt editiert von
      #2

      Ich habe jetzt noch mal ein wenig experimentiert.

      Leider komme ich nicht weiter.

      Gefunden habe ich cheerio basiert auf htmlparser2.

      Allerdings kann ich das in iobroker Javascript nicht nutzen.

      var request = require('request');
      var cheerio = require('cheerio');
      
      var url = 'http://wordpress.nibis.de/rsdelme/vertretungsplan-holbeinstrasse/';
      
      function Test() {
      request(url, function(err, stat, body) {
          if(err) log('Error: ' + err, error);
          $ = cheerio.load(body);
          log($('#post-3317').html());
      
      });
      }
      
      // Start bei Skriptstart
      Test();
      
      

      Führt aber zu einem :

      javascript.0 script.js.Vertretung: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/cheerio

      Ich habe das Installiert in /opt/iobroker mit "npm install cheerio" sowie "npm install htmlparser2"

      Ich habe da wohl noch das eine oder andere Verständnis Problem. Kann mir jemand bitte auf die Sprünge helfen?

      1 Antwort Letzte Antwort
      0
      • Jey CeeJ Online
        Jey CeeJ Online
        Jey Cee
        Developer
        schrieb am zuletzt editiert von
        #3

        Npm module kann man auch installieren in dem man in der JavaScript Adapter Konfiguration den Namen des Moduls einträgt.

        Gesendet von Unterwegs

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          Creator
          schrieb am zuletzt editiert von
          #4

          > Npm module kann man auch installieren in dem man in der JavaScript Adapter Konfiguration den Namen des Moduls einträgt.
          Ich glaube das muss man wohl genau so machen. Klappt super. Danke!

          var request = require('request');
          var cheerio = require('cheerio');
          
          var url = 'http://wordpress.nibis.de/rsdelme/vertretungsplan-holbeinstrasse/';
          
          function Test() {
          request(url, function(err, stat, body) {
              if(err) log('Error: ' + err, error);
              $ = cheerio.load(body);
              log($('#post-3317 a').attr('href'));
          
          });
          }
          
          // Start bei Skriptstart
          Test();
          
          

          Jetzt muss ich nur noch raus finden, wie ich die Datei in VIS darstellen könnte.

          1 Antwort Letzte Antwort
          0
          • Jey CeeJ Online
            Jey CeeJ Online
            Jey Cee
            Developer
            schrieb am zuletzt editiert von
            #5

            So auf die schnelle hätte ich vorgeschlagen das PDF in ein Bild umwandeln. Dazu gibt es das Modul pdf2image.

            Möglicherweise geht es auch mit phantomjs das als Adapter für iobroker verfügbar ist.

            Gesendet von Unterwegs

            Persönlicher Support
            Spenden -> paypal.me/J3YC33

            1 Antwort Letzte Antwort
            0
            • BuZZyB Offline
              BuZZyB Offline
              BuZZy
              schrieb am zuletzt editiert von
              #6

              Wenn du den Link von der Seite geholt hast kannst du im VIS mit dem iFramewidget das PDF darstellen.

              Als Quelle für das iFramewidget gibst du ein:

              http://docs.google.com/gview?url=http://wordpress.nibis.de/rsdelme/files/2015/08/Vertretungsplan-12.09.2017-S-aktuell1.pdf&embedded=true
              

              Achte dabei auf den Teil in der Mitte.. Da musst du die URL zu dem Vertretungsplan einfügen (ich habe ihn jetzt schon als Beispiel eingefügt)..

              Gruß

              1 Antwort Letzte Antwort
              0
              • C Offline
                C Offline
                Creator
                schrieb am zuletzt editiert von
                #7
                http://docs.google.com/gview?url=http://wordpress.nibis.de/rsdelme/files/2015/08/Vertretungsplan-12.09.2017-S-aktuell1.pdf&embedded=true
                

                Genau so was hatte ich gesucht. Super Danke.

                So muss man das PDF nicht runterladen auf dem Tab.

                Sehr sehr Nice. :)

                1 Antwort Letzte Antwort
                0
                • C Offline
                  C Offline
                  Creator
                  schrieb am zuletzt editiert von
                  #8

                  Hm ich hänge doch noch an einer Stelle im VIS.

                  Wie kann ich denn im iFrame Widget eine Objekt ID nutzen? Ich kann hier nur den Link selber hinterlegen.

                  Der komplette Link steht in einem Objekt.

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    Creator
                    schrieb am zuletzt editiert von
                    #9

                    Konnte es lösen, das Zauberwort heißt hier "Bindings"

                    https://github.com/ioBroker/ioBroker.vis

                    Als Quelle bei iFrame Widget habe ich jetzt folgendes hinterlegt.

                    {javascript.0.Status.agency.link}
                    
                    

                    Und das funktioniert wie gewollt :)

                    1 Antwort Letzte Antwort
                    0
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    707

                    Online

                    32.6k

                    Benutzer

                    82.2k

                    Themen

                    1.3m

                    Beiträge
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Anmelden

                    • Du hast noch kein Konto? Registrieren

                    • Anmelden oder registrieren, um zu suchen
                    • Erster Beitrag
                      Letzter Beitrag
                    0
                    • Home
                    • Aktuell
                    • Tags
                    • Ungelesen 0
                    • Kategorien
                    • Unreplied
                    • Beliebt
                    • GitHub
                    • Docu
                    • Hilfe