Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. GELÖST: InversSuche einer Telefonnummer

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    GELÖST: InversSuche einer Telefonnummer

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

      Hallo zusammen,

      ich steige gerade von FHEM zu IOBroker um. Viele Funktionen habe ich schon übernommen. Ein Punkt vermisse ich schmerzlich: Meine InverSuche zum Anzeigen einer unbekannten Nummer.

      Hierfür habe ich mir nun ein Skript in Javascript erstellt wie folgt:

      const cheerio = require("cheerio");
      const fetch = require("node-fetch");
      
      async function getData(number) {
        const response = await fetch(`https://www1.dasoertliche.de/?form_name=search_inv&ph=${number}`);
        const htmlText = await response.text();
        const $ = cheerio.load(htmlText);
       // const scriptText = $('script[type="text/javascript"]').first().text();
        const scriptText = $(htmlText).text();
       // console.log(scriptText);
        const regex = /@type":.+?"name":"(.+?)"/;
        const match = scriptText.match(regex);
        console.log(match);
        if (match) {
          console.log(`Name: ${match.Groups[1].Value}`);
        } else {
          console.log("No match found.");
        }
      }
      
      getData("xxxxxxxxxx").catch((err) => console.error(err));    // Nummer ge-xxxx ! Hier Nummer eintragen
      

      Die auskommentierte Logausgabe des "scriptText" sieht gut aus und enthält den SourceCode der Website.
      Gehe ich mit der angegebenen Rufnummer direkt unter Hilfe von Regex101 und der Regex expression finde ich den Namen des Teilnehmers unter Group[1].

      Insofern ist die Regex Expression gut.

      Hat hier jemand einen Verbesserungsvorschlag oder kann mir weiterhelfen?

      Viele Grüße
      Holger

      B 1 Reply Last reply Reply Quote 0
      • B
        Butschek @Butschek last edited by Butschek

        @butschek Lösung gefunden: Der Rückgabewert befindet sich hier: console.log(Name: ${match[1]});

        Folgend noch einmal das nun korrekte Skript. Vielleicht hilft es jemandem.

        VG
        Holger

        
        const cheerio = require("cheerio");
        const fetch = require("node-fetch");
        
        async function getData(number) {
          const response = await fetch(`https://www1.dasoertliche.de/?form_name=search_inv&ph=${number}`);
          const htmlText = await response.text();
          const $ = cheerio.load(htmlText);
         // const scriptText = $('script[type="text/javascript"]').first().text();
          const scriptText = $(htmlText).text();
         // console.log(scriptText);
          const regex = /@type":.+?"name":"(.+?)"/;
          const match = scriptText.match(regex);
          console.log(match);
          if (match) {
            console.log(`Name: ${match[1]}`);
          } else {
            console.log("No match found.");
          }
        }
        
        getData("xxxxxxxxxx").catch((err) => console.error(err));    // Nummer ge-xxxx ! Hier Nummer eintragen
        
        1 Reply Last reply Reply Quote 2
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        890
        Online

        31.7k
        Users

        79.8k
        Topics

        1.3m
        Posts

        1
        2
        160
        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