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 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 -
@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