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.
    • 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

                          678
                          Online

                          31.7k
                          Users

                          79.9k
                          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