Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Parser-Ausdruck für Ebbe&Flut gesucht

    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

    Parser-Ausdruck für Ebbe&Flut gesucht

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

      Habe jetzt auf der Fritzbox die Provide IP erneuert und die Abfrage auf 8h gestellt. Funktioniert!

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

        @hg6806 sagte in Parser-Ausdruck für Ebbe&Flut gesucht:

        Funktioniert!

        noch 😉

        ich hatte vorhin noch in den Nutzungsbedingungen gesucht.
        Viele Webseiten verbieten eine automatisierte Auslesung.

        Hier habe ich nichts gefunden

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

          @homoran

          Den Agent id evtl auch anpassen

          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @OliverIO last edited by

            @oliverio

            du meinst diesen agent ?

            axios.get('https://de.tideschart.com/Spain/Canary-Islands/Provincia-de-Las-Palmas/Playa-de-Costa-Calma/Weekly/', {
              headers: { 'User-Agent':`Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36` }
            }).then((result) => {
                      log(result.data)
                        return result.data
                    }).catch((error) => {
                        return error;
                    })
            
            OliverIO 1 Reply Last reply Reply Quote 0
            • liv-in-sky
              liv-in-sky @hg6806 last edited by liv-in-sky

              @hg6806

              habe mal ein neues script gemacht

              • hat variable zeit - zufallstahl zwischen 10 sek und 300 sekunden bei jedem aufruf - im bezug zum schedule
              • anderen user-agent (hoffe, dass ist so richtig - @OliverIO könntest du bitte mal nachsehen)
              • umstellung auf axios (im setting der javascript instanz "axios" eintragen (so wie bei "cheerio")
              • in zeile 5 deinen datenpunkt eintragen - der das json beinhalten soll
              // @liv-in-sky 1.10.21 Forum: https://forum.iobroker.net/topic/47295/parser-ausdruck-f%C3%BCr-ebbe-flut-gesucht/58
              // axios user-agent cheerio tabelle
              
              const cheerio = require('cheerio');
              const request = require('request');
              const axios=require('axios');
              let myDPunkt="0_userdata.0.CONTROL-OWN.TABELLEN.GezeitenInSpanien"
              
               let mySchedule1="  33 */8 * * * "; // alle 8 stunden bei minute 33
              
                schedule(mySchedule1,  function () {
                let myVarVar=mathRandomInt(10, 300);
               // log("startet ");
                setTimeout(function() {
                  //  log("jetzt "+myVarVar);
                    holeDaten();
              
                }, myVarVar*1000);
                });
              
              
              function mathRandomInt(a, b) {
                if (a > b) {
                  // Swap a and b to ensure a is smaller.
                  var c = a;
                  a = b;
                  b = c;
                }
                return Math.floor(Math.random() * (b - a + 1) + a);
              }
              
              async function holeDaten() { 
                  await axios.get('https://de.tideschart.com/Spain/Canary-Islands/Provincia-de-Las-Palmas/Playa-de-Costa-Calma/Weekly/', {
                                  headers: { 'User-Agent':`Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36` }
              }).then((result) => {
                      //  log(result.data)
                           const $ = cheerio.load(result.data)
                                             const list5 = $('*')
                                                                .find('td:not(.sun)')
                                                                .toArray()
                                                                .map(element => { return $(element).text()}); //log(list5.length +"---"+list5)
              
                                             let dayArr=['Mo','Di','Mi','Do','Fr','Sa','So'];
                                             let jsonArr=[];
                                             for(let i=0;i<list5.length;i++) {//log(list5[i])
                                                 for (let day=0;day<dayArr.length;day++) { if (list5[i].includes(dayArr[day])) {
                                                                                                 jsonArr.push({
                                                                                                     "day":    list5[i],
                                                                                                     "erste":  list5[i+1],
                                                                                                     "zweite": list5[i+2],
                                                                                                     "dritte": list5[i+3],
                                                                                                     "vierte": list5[i+4]
                                                                                                 })
                     }}
              } 
              //log(JSON.stringify(jsonArr))   //hier in dp schreiben
              //log("jetzt "+myVarVar);
              setState(myDPunkt,JSON.stringify(jsonArr))
              
                      }).catch((error) => {
                          return error;
                      })}
              
              
              
              
              
              
              1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @liv-in-sky last edited by OliverIO

                @liv-in-sky
                ja.
                ich weiß nicht was node da standardmäßig reinschreibt.
                aber daran kann man es evtl erkennen, das da kein browser sondern eine programm zugreift.

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @OliverIO last edited by

                  @oliverio

                  das wird wohl standardm. gesendet:

                  Image 1.png

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @liv-in-sky last edited by

                    @liv-in-sky
                    ja da siehsts: axios
                    kein browser

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @OliverIO last edited by

                      @oliverio

                      bei mir kommt jetzt zurück

                      Image 2.png

                      das sollte doch passen

                      OliverIO 1 Reply Last reply Reply Quote 1
                      • OliverIO
                        OliverIO @liv-in-sky last edited by

                        @liv-in-sky

                        ja

                        mit krönchen wäre jetzt noch ein dynamischer user-agent service

                        hier gibt es immer eine liste aktueller user-agent ids
                        https://raw.githubusercontent.com/Kikobeats/top-user-agents/master/index.json
                        https://github.com/Kikobeats/top-user-agents

                        Homoran liv-in-sky 2 Replies Last reply Reply Quote 1
                        • Homoran
                          Homoran Global Moderator Administrators @OliverIO last edited by

                          @oliverio 👑

                          1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @OliverIO last edited by

                            @oliverio

                            ja - das wäre auch ein krönchen - jetzt testen wie erstmal das neue script - mal sehen, ob es dann funktioniert

                            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

                            855
                            Online

                            31.7k
                            Users

                            79.8k
                            Topics

                            1.3m
                            Posts

                            6
                            65
                            2458
                            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