NEWS
GELÖST: InversSuche einer Telefonnummer
-
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 eintragenDie 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 -
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 eintragenDie 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@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
Holgerconst 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
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden