Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parser: Script einer Seite ausführen um Content zu laden

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Parser: Script einer Seite ausführen um Content zu laden

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      moritzabcde last edited by

      Hallo Zusammen!

      Ich würde gerne den Preis von Windeln beim Drogeriemarkt dm mittels Parser auslesen. Hier zum Beispiel ein Link zum Produkt:
      https://www.dm.de/pampers-windeln-baby-dry-gr-4-maxi-plus-10-15-kg-big-pack-p8006540481554.html
      Im Parser kommt aber die eigentliche Seite nicht an:

      <body>
      <div id="app"></div>
      <script src="/scripts/main.js"></script>
      </body>
      

      Kann man irgendwie das Script ausführen, so dass der gesamte Inhalt zur Verfügung steht?

      Vielen Dank!

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @moritzabcde last edited by OliverIO

        @moritzabcde

        ja, die dm-seite lädt die daten dynamisch nach.

        aber du hast glück.
        du kannst die daten per json unter folgender adresse abrufen.

        https://products.dm.de/product/de/products/gtins/8006540481554?view=details

        regex-ausdruck für parser wäre

        "price":"([\d\.]+)"
        

        7833f20a-13bb-4201-a15c-0e73ecfeb436-image.png

        M 1 Reply Last reply Reply Quote 0
        • M
          moritzabcde @OliverIO last edited by moritzabcde

          @oliverio
          Super! Vielen Dank!
          Kannst du mir noch erklären, wie du das herausgefunden hast? Steckt das irgendwo im HTML-Code?
          EDIT: Sorry, habe jetzt erst den Screenshot entdeckt. Danke auch dafür 🙂

          S 1 Reply Last reply Reply Quote 0
          • S
            Sushibomba @moritzabcde last edited by

            @moritzabcde

            Hey würde das auch gerne nutzten, verstehe nur noch nicht so ganz wie ich das bei mir einstellen soll.
            Kannst du mir das mal "für doofe" erklären? 😄

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @Sushibomba last edited by

              @sushibomba
              hier anhand eines anderen beispiels
              https://forum.iobroker.net/topic/8379/einlesen-von-aktienkursen/80?_=1657718847549

              S 1 Reply Last reply Reply Quote 1
              • S
                Sushibomba @OliverIO last edited by

                @oliverio
                Ok ich versteh nur Bahnhof 😄

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @Sushibomba last edited by

                  @sushibomba

                  dann wird es schwierig.
                  regex ist sehr komplex.
                  da was allgemeingültiges mundfertig aufzubereiten nicht einfach.
                  wenn du den ganzen thread durchliest, hatte der TE ein problem das er aus einer Seite Inhalte mit dem Parser-Adapter auslesen wollte und in Datenpunkte schreiben.

                  Ich hatte es so verstanden, das du ein ähnliches Problem hast

                  Die Vorgehensweise beschreibt grob, wie man da vorgeht
                  das man am Ende einen funktionierendes Muster erhält, das der Parser-Adapter versteht.

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Sushibomba @OliverIO last edited by

                    @oliverio
                    Ok dann wird es tatsächlich für mich schwierig.
                    Ich dachte man könnte einfach eine Seite einfügen und dann den Bereich in Form eines Links einfügen von dem er den Wert ständig neu einlesen soll 😞
                    Trotzdem vielen Dank

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @Sushibomba last edited by

                      @sushibomba sagte in Parser: Script einer Seite ausführen um Content zu laden:

                      Ich dachte man könnte einfach eine Seite einfügen und dann den Bereich in Form eines Links einfügen von dem er den Wert ständig neu einlesen soll

                      das erklär mal bitte.
                      Was für eine Seite willst du wo einfügen?
                      und was soll das für ein Link sein, den du dann wiederum wo einfügen willst?
                      Was für einen "Bereich" soll der ominöse Link erfassen?
                      so was wie ein Bildausschnitt in einem Screenshot?

                      1 Reply Last reply Reply Quote 0
                      • S
                        Sushibomba last edited by Sushibomba

                        @homoran

                        Nein ich dachte genau an das gleiche Beispiel wie oben.
                        Man sucht sich die Seite raus wo man einen Preis Update immer wieder braucht, untersucht die Seite und findet den Bereich(Linkschnipsel) wo der Preis angezeigt wird.
                        Dann dachte ich könnte man einfach den Link von der Seite nehmen und dem Adpater dann sagen... Auf der Seite xyz wähle genau Bereich abc und erstelle davon einen Datenpunkt und aktualiere ihn sobald der Wert nicht mehr mit dem alten Wert übereinstimmt.

                        So in etwa hatte ich es mir zumindest vorgestellt 😄

                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Sushibomba last edited by

                          @sushibomba sagte in Parser: Script einer Seite ausführen um Content zu laden:

                          untersucht die Seite und findet den Bereich(Linkschnipsel) wo der Preis angezeigt wird.

                          also den internen Link der Website!
                          den musst es erst einmal in der Form geben dass man von außen rankommt, Dann musst du ihn finden und hoffen, dass der Betreiber dich nicht als Intruder identifiziert.

                          @sushibomba sagte in Parser: Script einer Seite ausführen um Content zu laden:

                          Auf der Seite xyz wähle genau Bereich abc und erstelle davon einen Datenpunkt

                          Beteich ist so eine niefliche Beschreibung für das was du willst. Man kann nicht einfach wirklich einen Bereich auswählen, man muss per RegEx eine eindeutige Codestelle finden.

                          @sushibomba sagte in Parser: Script einer Seite ausführen um Content zu laden:

                          aktualiere ihn sobald der Wert nicht mehr mit dem alten Wert übereinstimmt.

                          das wiedrum müsstest du mit einem Skript machem.
                          Das RegEx bringt dir die an der Codestelle gefundene Zeichenfolge, mehr nicht

                          S 1 Reply Last reply Reply Quote 1
                          • S
                            Sushibomba @Homoran last edited by

                            @homoran

                            Ok das übersteigt auf jeden Fall mein bisheriges Wissen.

                            Da muss ich mich wohl noch deutlich tiefer in die Materie einlesen um das Prinzip genau zu verstehen.

                            Aber vielen Dank für dein ausführliche Erklärung.

                            OliverIO 1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @Sushibomba last edited by

                              @sushibomba

                              regex ist eine technik für ein suchmuster. ungefähr so wie * und ?
                              als platzhalter wenn du dateien auf der festplatte suchst,
                              nur um einiges komplexer und leistungsfähiger.

                              eine seite (also der html code) kann so durchsucht werden um exakt die stelle zu finden, wo der text steht den dir in einer webseite angezeigt wird. manchmal gibt es noch andere widrigkeiten, aber das macht es noch komplexer. daher muss man ausprobieren.

                              der parser adapter versucht es einem relativ einfach zu machen.
                              das suchmuster muss man allerdings selber entwerfen, da ja jede seite individuell aufgebaut ist.

                              dabei können wir helfen, aber wir brauchen dazu input.
                              einmal am besten den ganzen quellcode der betroffenen seite (im browser mit der maus rechte maustaste seitenquelltext anzeigen)
                              zum anderen eine möglichst genaue beschreibung welcher text extrahiert werden soll (ggfs. screenshot)
                              am besten funktioniert es mit seiten, die öffentlich für alle aufrufbar sind.
                              sobald man login daten eingeben muss, wird es schon wieder schwieriger, da das der parser adapter nicht kann (auch hier wenige ausnahmen mit dem man es doch schafft)

                              Homoran S 2 Replies Last reply Reply Quote 2
                              • Homoran
                                Homoran Global Moderator Administrators @OliverIO last edited by

                                @oliverio

                                @Sushibomba
                                und Seiten, in denen das Gesuchte nicht direkt im Quelltext steht, sondern z.B. die Werte durch Skripte dynamisch erzeugen können auch sehr problematisch bis unmöglich auszulesen sein.

                                Hinzu kommt noch, dass viele Seitenbetreiber in den Nutzungsbedingungen ein automatisiertes Auslesen verbieten.

                                1 Reply Last reply Reply Quote 1
                                • S
                                  Sushibomba @OliverIO last edited by Sushibomba

                                  @oliverio

                                  Ok alles klar dann schaue ich mal auf welchen Seiten mir die Infos helfen würden und poste sie dann hier mal rein 🙂

                                  Vielen herzlichen Dank für die tolle Erklärung !!!

                                  @Homoran Danke. Gut zu wissen.

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate
                                  FAQ Cloud / IOT
                                  HowTo: Node.js-Update
                                  HowTo: Backup/Restore
                                  Downloads
                                  BLOG

                                  989
                                  Online

                                  31.6k
                                  Users

                                  79.4k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  15
                                  473
                                  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