NEWS
Regex Experte gesucht
-
Hallo, ich benötige Mal Hilfe von einem Regex Experten. Ich habe folgende Webseite
Dort sind zwei Ampeln mit einem kurzen Text zur aktuellen Belegung. Ich würde dies gerne als Sprachausgabe über Alexa Ansagen lassen. Wir kann ich die beiden Stellen in ein String extrahieren? Oder lieber etwas in Javascript basteln?
Schöne Grüße
Carsten -
-
bitte genauer spezifizieren welchen Text du meinst
Willst du das komplett oder nur den 2. Satz
Badespaß für die ganze Familie
Die Auslastung liegt derzeit unter 50% und ist gering.Mit Regex kann das etwas schwierig werden, mit javascript und cheerio ist es einfacher
$($(".ampel-sauna div")[1]).text() $($(".ampel-schwimmbad div")[1]).text()
-
@oliverio
Könntest du mir vielleicht nochmal eine Hilfestellung geben? Es handelt sich um eine https Seite, da komme ich mit meinem Request nicht weiter. Wie frage ich denn eine https Seite ab?Zeil wäre die Ausgabe auf Alexa: Die Auslastung liegt derzeit unter 50% und ist gering.
-
axios und cheerio müssen als zusätzliche npm bibliotheken in der konfiguration des javascript-adapters hinzugefügt werden.
const cheerio = require('cheerio'); const axios = require('axios'); const dp_Bad = "0_userdata.0.test1"; const dp_Sauna = "0_userdata.0.test2"; async function getData() { const response = await axios.get('https://aqualaatzium.de/'); const $ = cheerio.load(response.data); let bad = $($(".ampel-sauna div")[1]).text(); let sauna = $($(".ampel-schwimmbad div")[1]).text(); log(bad); log(sauna); setState(dp_Bad,bad); setState(dp_Sauna,sauna); } getData();
ob http oder https,
ob bibliothek axios oder request ist relativ egal
wenn es nicht ging hast du irgendwo ein fehler eingebaut.das skript liefert den inhalt in 2 datenpunkten ab.
wie man den text auf alexa bringt weiß ich nicht,
da muss jemand anders helfen -
@oliverio said in Regex Experte gesucht:
const cheerio = require('cheerio'); const axios = require('axios'); const dp_Bad = "0_userdata.0.test1"; const dp_Sauna = "0_userdata.0.test2"; async function getData() { const response = await axios.get('https://aqualaatzium.de/'); const $ = cheerio.load(response.data); let bad = $($(".ampel-sauna div")[1]).text(); let sauna = $($(".ampel-schwimmbad div")[1]).text(); log(bad); log(sauna); setState(dp_Bad,bad); setState(dp_Sauna,sauna); } getData();
Hab ganz herzlichen Dank, läuft perfekt! Den Rest bekomme ich auch alleine hin, es scheiterte an den Web Abfrage.