Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Wert aus einer Webseite auslesen?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wert aus einer Webseite auslesen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • hg6806
      hg6806 Most Active @skybundi last edited by

      @skybundi
      Moin!
      Nein, bin hier leider nicht weitergekommen.
      Das ganze Auslesen von einer Webseite funktioniert meist nur eine Zeit lang, bis die irgendetwas ändern, dann fängt man wieder von vorne an.
      Ich habe auch keine Lust ständig danach zu fragen.

      Eigentlich müsste man sich mal richtig mit dem Thema RegEx auseinandersetzen, aber da fehlt mir die Zeit.

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

        @hg6806 sagte in Wert aus einer Webseite auslesen?:

        Eigentlich müsste man sich mal richtig mit dem Thema RegEx auseinandersetzen

        das nutzt gar nichts wenn Webseiten dynamisch erzeugt werden!
        Für das "einfache" parsen von Webseiten per RegEx muss der Wert in Klartext im Quelltext vorhanden sein.

        hg6806 1 Reply Last reply Reply Quote 0
        • hg6806
          hg6806 Most Active @Homoran last edited by

          @homoran

          Ja, mag ja sein, ich glaube der Werte hatte auch im Klartext dort gestanden, aber ich habe keine Lust ständig nachzufragen sondern möchte es gerne selbst rausfischen, aber dafür muss man sich mit dem Thema ausführlich beschäftigen.

          DJMarc75 Homoran 2 Replies Last reply Reply Quote 0
          • DJMarc75
            DJMarc75 @hg6806 last edited by DJMarc75

            @hg6806 sagte in Wert aus einer Webseite auslesen?:

            aber dafür muss man sich mit dem Thema ausführlich beschäftigen

            ja, das würde Sinn machen. Ich glaub @OliverIO hat da mal irgendwelche Links (Referenzen) zu dem Thema Regex hier gepostet.

            Suchen Du musst 😉

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

              @hg6806 sagte in Wert aus einer Webseite auslesen?:

              aber dafür muss man sich mit dem Thema ausführlich beschäftigen.

              das gilt natürlich für alles auf der Welt.

              Aber wirklich schwer ist das nicht. unter regex101.com gibt es zu jedem Schritt ausführliche Hilfe

              @hg6806 sagte in Wert aus einer Webseite auslesen?:

              ich glaube der Werte hatte auch im Klartext dort gestanden

              dann hätten wir ihn ja rausgefunden.
              Bitte "untersuchen" nicht mit Seitenquelltext verwechseln!

              @hg6806 sagte in Wert aus einer Webseite auslesen?:

              bis die irgendetwas ändern,

              womöglich weil in den Nutzungsbedingungen ein automatisiertes Auslesen explizit verboten ist!??

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

                @djmarc75 sagte in Wert aus einer Webseite auslesen?:

                Ich glaub @OliverIO hat da mal irgendwelche Links (Referenzen) zu dem Thema Regex hier gepostet.

                da ging es wimre genau um die Vorgehensweise um dynamisch erstellte Seiten zu untersuchen und die "wahre Quelle" der Daten zu finden und anzuzapfen

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

                  @hg6806

                  Hier die grobe Vorgehensweise

                  https://forum.iobroker.net/topic/8379/einlesen-von-aktienkursen/81?_=1687163535737

                  Ich habe mir mal die Seite angeschaut.
                  Die Originaldaten kommen, wie oben schon gefunden, von windguru.cz
                  Die Daten werden live von einem widget von dort abgerufen und in die Seite eingetragen.
                  Der Request ist geschützt, der request, darf nur von der Seite von rene egli aus gestartet werden.
                  auf windguru.cz kann man sich ein widget generieren lassen, auf die schnelle habe ich aber genau das design nicht gefunden. auch scheint man da schon bezahlen zu müssen,

                  in diesem fall würde die vorgehensweise, die ich hier oben gepostet habe nicht helfen, da die seite ja erst im browser des jeweiligen nutzers entsteht. die daten sind dann in einzelnen requests im network tab der developer tools zu finden und javascript trägt die dann direkt an die richtige stelle auf der seite ein.

                  evtl kannst du auch mal hier schauen. windy ist glaube ich nicht ganz so restriktiv
                  https://windy.app/de/widgets

                  1 Reply Last reply Reply Quote 2
                  • MartinP
                    MartinP @andyf2000 last edited by MartinP

                    @andyf2000

                    REGEX kann wahrscheinlich sehr viel - aber ich hab bis jetzt noch nicht den Durchblick.

                    Ich habe mir mein lückenhaftes Wissen über REGEX hier zusammengeklaubt (fand den Domainnamen lustig):

                    http://regenechsen.de/wp/regulaere-ausdruecke/01-regex-allgemein/

                    1 Reply Last reply Reply Quote 0
                    • U
                      umichel last edited by

                      Moin,

                      da der Binance Adapter leider nicht mehr weiter entwickelt wird und auch die Beispiele des Parser Adapter bei finanzen.net nicht mehr funktionieren bzw. die Anfragen gesperrt werden:
                      Hat jemand eine Webseite mit Kryptokursen und eine RegEx Beispiel, was mit dem Parse Adapter noch funktioniert?

                      LG

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

                        @umichel sagte in Wert aus einer Webseite auslesen?:

                        bzw. die Anfragen gesperrt werden:

                        weil trotz Verbot von automatisiertem Auslesen in den Nutzungsbedingungen dies durch geführt wurde.
                        Da ist Blockieren noch die harmlose Variante.
                        Es hat auch schon Besuche der Kripo gegeben.

                        1 Reply Last reply Reply Quote 0
                        • U
                          umichel last edited by

                          Gut, dass ist eine Sache der Betreiber.
                          In vielen Fällen auch absolut verständlich.
                          Aber ist deshalb das Auslesen aller Webseiten verboten?

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

                            @umichel sagte in Wert aus einer Webseite auslesen?:

                            Hat jemand eine Webseite mit Kryptokursen

                            hast du den eine Liste von Seiten mit krypto kursen?
                            Aber das wäre dann der nächste Kandidat für das blockieren,
                            weil dann sicherlich welche alle paar sekunden 100 kurse abrufen.
                            dabei ist das für die öffentlichen über webseite abrufbare kurse sowieso irrelevant ist, da diese uU bereits Minuten-Alt sind.
                            Wenn jemand day-trading betreibt, kommt er um kostenpflichtige angebote nicht herum.

                            Aber ist deshalb das Auslesen aller Webseiten verboten?

                            Das kommt auf die AGBs der Seite an. Da aber diese Informationen immer von der jeweiligen Seite teuer eingekauft werden müssen, müssen die so etwas in die AGBs reinschreiben, das man die nicht auslesen darf. Ob da jetzt die Kripo kommt ist fraglich. Auch gibt es eine Gerichtsentscheidung dass Scrapen schon erlaubt ist, auch kommerziell. allerdings sind rechtlich mE da noch nicht alle Varianten ausgelotet
                            ggfs. könnte ein übermäßiger Abruf von Daten auch als versuchte denial-of Service-Attacke gewertet werden.
                            Wie gesagt, wenn man alle paar Minuten ein paar Werte ausliest, wird kein Anbieter da etwas machen können, da er es uU eh nicht unterscheiden kann, ob das über Browser oder einem automatisierten System verursacht wird.
                            Wer aber in kurzen Abständen viele Daten abruft, dann kann so etwas schon auffallen. Also ich würde da so ein Alarming einbauen: Wer mehr wie 10 mal in 10 Sekunden und mehr wie 100 mal in 10 Minuten abruft, wird die IP für 4h geblockt, oder so ähnlich.

                            https://legalwebdata.de/web-scraping/#:~:text=Konsequenzen gefasst machen.-,Mögliche rechtliche Konsequenzen,Ausmaß das Scraping durchgeführt wird.

                            Hier wurden aber die wettbewerbsrechtlichen Vorteile gewertet. Wenn jemand das privat macht, könnte die Erklärung schwierig werden.
                            https://www.ra-plutte.de/bgh-zum-automatisierten-auslesen-fremder-websites-via-screen-scraping/

                            1 Reply Last reply Reply Quote 0
                            • U
                              umichel last edited by

                              Ne ... keine Daytrading oder Abrufen im Minutentakt.
                              Mir reicht sowas einmal am Tag.
                              Dann bekomme ich ja auch eine neue IP und gut ist.
                              Ich hab mir die Ulanzi Uhr besorgt.
                              Matthias hat dafür einen tollen Adapter erstellt.
                              Wäre halt nett sich darauf z.B. Kurse oder News anzeigen lassen zu können.
                              Da passt der Parser Adapter vielleicht ganz gut.
                              Mir sind zumindest keine Adpater bekannt die das sonst könnten.
                              Keine Ahnung ob z.B. Coinbase: https://www.coinbase.com/de/price/cardano
                              oder CMC das blocken: https://coinmarketcap.com/de/currencies/cardano/

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

                                @umichel sagte in Wert aus einer Webseite auslesen?:

                                Aber ist deshalb das Auslesen aller Webseiten verboten?

                                musst du in den Nutzungsbedingungen der jeweiligen Website nachsehen.

                                1 Reply Last reply Reply Quote 0
                                • U
                                  umichel last edited by

                                  Ok, da muss ich dann mal schaune, ob die die das reglementieren.
                                  Auf der anderen Seite gibt es aber ja auch Tools die ganze Seite downloaden oder sogar archivieren.
                                  Den Unterschied verstehe ich jetzt nicht so ganz, aber könnte man theoretisch solch einen Umweg gehen?
                                  Also erst downloaden und dann auslesen?

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

                                    @umichel
                                    Welche Tools?
                                    Für die gilt die AGB ja auch, bzw für dich der das Tool bedient.
                                    Für Automaten gibt's die Robots.txt
                                    Da kann der Webseiten Betreiber angeben was ein Automat lesen darf und was nicht
                                    https://de.m.wikipedia.org/wiki/Robots_Exclusion_Standard

                                    Für viele Seiten gilt das sie so nicht vom Server übertragen werden wie sie angezeigt werden. Oft werden per Javascript dynamisch daten nachgeladen.
                                    Da hört es dann oft für die Automaten auf so etwas automatisiert auszuwerten. Da versagt dann auch der Parser Adapter und wir müssen andere Methoden finden die Daten zu finden

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

                                      Na ja, es gibt selbst im Selfhosting Bereich sowas wie Wallabag oder ArchiveBox.
                                      Getestet habe ich die nicht, aber früher habe ich mal HTTrack genutzt und selbst Webrowser können Webseiten speichern?
                                      Und da wurden meine ich auch die Daten geparsed, die dynamisch nachgeladen wurden gespeichert.
                                      Zusätzlich gibt es zig Online Servives die das kostenpflichtig machen.
                                      Mich wundert aktuell also die Problematik Webseite zu speichern oder zu parsen. Klar, solltes das nicht im Sekundentakt passieren oder gar Geld damit verdient werden.
                                      Deshalb meine Idee mit dem Umweg über geicherte Webseiten.
                                      Ob ein Proxy da hilft weiss ich nicht, so groß sind meine technischen Kenntnisse nicht.

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

                                        @umichel
                                        Die Tools werden ja durch dich ausgeführt.
                                        Daher musst du die AGBs der jeweiligen Seite beachten.
                                        Klar kann der Anbieter im Detail nicht immer unterscheiden, ob es im Browser durch einen Nutzer angeklickt wurde oder durch ein Tool ausgeführt wird.
                                        Aber Übermaß führt zu Gegenmaßnahmen und schädigt die andern, die das gemäßigt nutzen.
                                        Problem ist, manche sagen, ach, man wird schon Nix merken.
                                        Und schwupp, die wupp ist der Dienst gesperrt, oder der Anbieter führt stärkere Maßnahmen ein.

                                        Ein Proxy hilft Nur dann, wenn deine Anfragen über mehrere Rechner geführt werden, so dass die ursprüngliche Adresse, von der die Anfragen kommen nicht mehr sichtbar sind. (Beispielsweise TOR Netzwerk)

                                        1 Reply Last reply Reply Quote 1
                                        • U
                                          umichel last edited by umichel

                                          Hmm OK.
                                          Vielleicht hat ja jemand noch einen Tip wie ich z.B. an Kryptokurse komme.
                                          Oder auf eigenes Risiko z.B. die hier auslesen: https://www.coinbase.com/de/price/cardano

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

                                            @umichel

                                            sieht schlecht aus.
                                            die Abfrage wird durch ein javascript auf diese Adresse ausgeführt
                                            https://www.coinbase.com/graphql/query?&operationName=useGetPriceChartDataQuery&extensions={"persistedQuery"%3A{"version"%3A1%2C"sha256Hash"%3A"3aa896a38f822d856792f18ca18f98f49580540f517693ad4e51508c529ddb6e"}}&variables={"skip"%3Afalse%2C"slug"%3A"cardano"%2C"currency"%3A"EUR"}

                                            Der Server erfordert von dem request aber strict-origin-when-cross-origin
                                            d.h. die Abfrage darf nur von einer Seite ausgeführt werden, die die gleiche domäne hat wie der link bzw. in einer Ausnahmeliste drin steht:

                                            Content-Security-Policy:
                                            default-src 'self' https://login.coinbase.com https://www.coinbase.com; child-src 'self' https://www.coinbase.com https://static-assets.coinbase.com https://fast.wistia.net https://ui.solaris-p.finleap.cloud https://fts-payment-initiation-wizard.solarisbank.de/ https://payment.truelayer.com https://*.online-metrix.net https://tm-eps.neutrino.nu https://*.wpstn.com https://netverify.com https://platform.twitter.com https://www.google.com/recaptcha/ https://recaptcha.net/ https://cdn.plaid.com/link/ https://*.doubleclick.net/ blob: https://www.youtube.com https://player.vimeo.com/video/ https://widget.coinbase.com https://datawrapper.dwcdn.net/ https://widgets.marqeta.com https://*.paypal.com https://pay.google.com/ https://accounts.google.com/ https://transact.atomicfi.com/ https://cb-monorail-legal-agreements-prod.s3.us-east-1.amazonaws.com https://alchemy.veriff.com https://price-table-widget.coinbase.com https://magic.veriff.me https://centinelapi.cardinalcommerce.com/V1/Cruise/Collect https://p2a.co/; connect-src 'self' https://www.coinbase.com https://api.coinbase.com https://api.custody.coinbase.com https://www.tradingview.com/snapshot/ https://player.vimeo.com/api/player.js https://vimeo.com/api/oembed.json https://s.adroll.com https://d.adroll.com https://cdn.segment.com https://api.segment.io https://login.coinbase.com https://*.online-metrix.net https://tm-eps.neutrino.nu https://api.cloudinary.com https://ott9.wpstn.com/live https://api.amplitude.com/ https://d3907m2cqladbn.cloudfront.net/ https://exceptions.coinbase.com https://assets.coinbase.com/ https://sessions.coinbase.com/ https://assets.coinbase.com/ https://static-assets.coinbase.com/ https://dynamic-assets.coinbase.com/ https://analytics.google.com https://*.google-analytics.com https://maps.googleapis.com https://translation.googleapis.com https://www.googletagmanager.com/gtag/js https://www.googletagmanager.com/gtm.js https://www.googleadservices.com https://googleads.g.doubleclick.net https://people.googleapis.com https://dynamic-assets.coinbase.com https://published-assets.coinbase.com https://translations.coinbase.com https://translations.coinbase.com https://static.coinbase.com https://events-service.coinbase.com/amp https://events-service.coinbase.com/track-exposures https://events-service.coinbase.com/bugsnag https://events-service.coinbase.com/metrics https://as.coinbase.com/metrics https://as.coinbase.com/amp https://as.coinbase.com/bugsnag https://as.coinbase.com/track-exposures https://dp.coinbase.com/metrics https://dp.coinbase.com/amp https://dp.coinbase.com/bugsnag https://dp.coinbase.com/track-exposures https://*.braintree-api.com https://api.braintreegateway.com https://vq0hrc01qb.execute-api.us-east-1.amazonaws.com/api wss://ws.coinbase.com wss://ws.coinbase.com:443 https://www.coinbase.com/api https://cdn.contentful.com/ https://preview.contentful.com/ https://contentful.coinbase.com/ https://api.userleap.com/ https://api.sprig.com/ https://widgets.marqeta.com/client/api/v1/ https://assets.ctfassets.net/ https://images.ctfassets.net/ https://pay.google.com/ https://google.com/pay https://accounts.google.com/ https://api.kickofflabs.com/ https://c.tvpixel.com/ https://p.tvpixel.com/ https://*.salesforce.com https://rs.fullstory.com https://api.wallet.coinbase.com wss://*.bridge.walletconnect.org wss://bridge.walletconnect.org https://registry.walletconnect.com/api/v2/wallets wss://www.walletlink.org; font-src 'self' https://www.coinbase.com https://assets.coinbase.com/ https://card.coinbase.com/ https://static.coinbase.com https://static-assets.coinbase.com https://assets.ctfassets.net/; img-src 'self' data: https://www.coinbase.com https://images.coinbase.com https://www.tradingview.com https://bat.bing.com/ https://i.vimeocdn.com/video/ https://d.adroll.com https://d3907m2cqladbn.cloudfront.net/ https://d392zik6ho62y0.cloudfront.net/ https://d1dwhf283nul1c.cloudfront.net/ https://static-assets.coinbase.com/ https://dynamic-assets.coinbase.com/ https://dynamic-assets.coinbase.com https://published-assets.coinbase.com https://exceptions.coinbase.com https://coinbase-uploads.s3.amazonaws.com https://asset-metadata-service-production.s3.amazonaws.com https://s3.amazonaws.com/app-public/ https://maps.gstatic.com https://ssl.google-analytics.com https://www.google.com https://maps.googleapis.com https://csi.gstatic.com https://www.google-analytics.com https://res.cloudinary.com https://secure.gravatar.com https://i2.wp.com https://*.online-metrix.net https://tm-eps.neutrino.nu https://assets.coinbase.com/ https://ctf-images-01.coinbasecdn.net/ https://hexagon-analytics.com https://cb-brand.s3.amazonaws.com https://googleads.g.doubleclick.net https://stats.g.doubleclick.net/r/collect https://card.coinbase.com/ blob: https://static.coinbase.com https://www.facebook.com/tr/ https://images.ctfassets.net/ https://i.ytimg.com/vi/ https://*.paypal.com https://px.ads.linkedin.com https://www.linkedin.com/px https://p.adsymptotic.com/d/px https://atomicfi-public-production.s3.amazonaws.com https://cdn-public.atomicfi.com https://api.custody.coinbase.com/ https://help.coinbase.com/ https://truelayer-provider-assets.s3.amazonaws.com; media-src 'self' https://www.coinbase.com https://d392zik6ho62y0.cloudfront.net/ blob:; object-src 'self' data: blob: https://www.coinbase.com https://cdn.siftscience.com https://*.online-metrix.net https://tm-eps.neutrino.nu https://www.gstatic.com https://www.google.com/recaptcha/api/ https://recaptcha.net/; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.coinbase.com https://cdn.segment.com https://bat.bing.com/ https://player.vimeo.com/api/player.js https://s.adroll.com https://d.adroll.com https://www.youtube.com/iframe_api https://www.youtube.com/s/player/ https://fast.wistia.com/assets/external/E-v1.js https://cdn.siftscience.com https://*.google-analytics.com https://www.google.com https://www.gstatic.com https://*.online-metrix.net https://tm-eps.neutrino.nu https://code.jquery.com https://chart.googleapis.com https://maps.googleapis.com https://maps.gstatic.com https://netverify.com https://ajax.cloudflare.com https://cdn.plaid.com/link/ https://www.googletagmanager.com/gtag/js https://www.googletagmanager.com/gtm.js https://www.googleadservices.com https://googleads.g.doubleclick.net https://assets.coinbase.com/ https://card.coinbase.com/ https://static.coinbase.com https://widget.coinbase.com https://connect.facebook.net/en_US/fbevents.js https://connect.facebook.net/signals/config/ https://static-assets.coinbase.com/js/ https://static-assets.coinbase.com/trading-view/ https://*.paypal.com https://recaptcha.net/ https://www.gstatic.cn/ https://images.ctfassets.net/ https://pay.google.com/ https://accounts.google.com/ https://cdn.atomicfi.com/transact.js https://c.tvpixel.com/ https://p.tvpixel.com/ https://rs.fullstory.com https://price-table-widget.coinbase.com; style-src 'self' 'unsafe-inline' https://assets.coinbase.com https://www.coinbase.com https://s.adroll.com https://assets.coinbase.com/ https://static-assets.coinbase.com/trading-view/ https://card.coinbase.com/ https://static.coinbase.com; report-uri /csp-logging
                                            
                                            
                                            

                                            diese seite auslesen funktioniert meiner meinung nach nur mit browser automatisierungstools wie selenium. evtl auch mit tools wie greasemonkey/tampermonkey, welche aber auch wieder einen laufenden browser benötigen, bei dem die seite regelmäßig aufgerufen wird

                                            hm, korrektur. der request geht doch durch?
                                            probiere im parser-adapter bitte mit dem obigen link die folgenden einstellungen

                                            regex

                                            },{"price":"([\d\.]+)
                                            

                                            type

                                            number(.)
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            11
                                            52
                                            8789
                                            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