NEWS
Adapter für Webseitenüberwachung
-
Hi,
ich bin auf der Suche nach einem Adapter mit dem ich Webseiten auf Veränderungen überwachen kann.
Mir geht es da Hauptsächlich um den Download von Firmware, die ich sonst manuell regelmäßig aufrufen muss.
Kennt da jemand etwas? Oder hat jemand einen anderen Lösungsvorschlag?
Gruß
steimi -
Lässt sich das Vorhaben vielleicht mit dem Parser Adapter umsetzbar?
-
@Xyolyp Schaue mir den Adapter Mal an. Danke
-
@steimi sagte in Adapter für Webseitenüberwachung:
Kennt da jemand etwas?
Kommt exakt auf die Webseite an, und WAS du da überwachen willst
-
-
@steimi Foscam geht nicht, die Seite wird dynamisch erzeugt.
Eugens Seite kannst du mit
date\s(\d{2}\.\d{2}\.\d{4})[^\n]+\n+<h2>
abfragen, die müsste immer das aktuellste Datum bringen -
@steimi Ich weiß, das war eigentlich nicht gefragt, doch es gibt Browser-Plugins die das machen.
-
@Dr-Bakterius sicher, aber einfach ein Update 1x am Tag/Woche und dann per Blockly/Pushover benachrichtigt reicht mir.
-
Könnte man mit dem Parser den Text einer Website auf Verschwinden hin überwachen?
Ich hätte gerne eine Nachricht wenn wenn ein bestimmter Text nicht mehr auf der Seite vorhanden ist.
-
@aiouh mit einem blockly request kannst du eine seite einlesen und nach einem textteil suchen - ist der text immer in eine feste html struktur eingebettet, kannst du das definieren und den inhalt (text) lesen, vergleichen.
bei einer änderung, könntest du dann eine message senden und dann den neuen text als neue variable nutzen, um eine weitere änderung festzustellen
-
für foscom ein kleines script
du mussst im javascript adapter setting den wert "cheerio" als zusatz npm eintragen
im log siehst du, was da so rauskommt - ist nur rudimentär - man muss sich halt überlegen, was man mit den daten machen will
const cheerio = require('cheerio'); const request = require('request'); let mySchedule1=" 12 */4 * * * "; // alle 4 stunden bei minute 12 //schedule(mySchedule1, function () { request('https://foscam.com/downloads/firmware_details.html?id=144',(error, response, html)=>{ if (response.statusCode==200){ //log(html) const $ = cheerio.load(html) const list5 = $('*') .find('td') .toArray() .map(element => { return $(element).text()}); log(list5.length +"---"+list5) log(list5[6]) }});
ein beispiel für weatherman
const cheerio = require('cheerio'); const request = require('request'); let mySchedule1=" 12 */4 * * * "; // alle 4 stunden bei minute 12 //schedule(mySchedule1, function () { request('https://www.stall.biz/project/weatherman-die-perfekte-wetterstation-fuer-die-hausautomation',(error, response, html)=>{ if (response.statusCode==200){ //log(html) const $ = cheerio.load(html) const list5 = $('*') .find('p') .toArray() .map(element => { return $(element).text()}); log(list5.length +"---"+list5) for(let i=0;i<list5.length;i++){ if (list5[i].includes("Update") && list5[i].includes("WEATHERMAN")) log(list5[i]) } }}); //});
wenn in der seite nur immer die eine zeile geändert wird mit einer neuen version funktioniert das
-
@liv-in-sky Danke für die Anregung, da werde ich mal grübeln. Ist für mich dann was für einen längeren Winterabend, aber die kommen ja bald
-
@aiouh kannst du mir eine seite sagen und welchen text du überwachen willst ?
-
@liv-in-sky aber gerne
https://fraenkel-ag.de/immobilien-angebote/wohnen/Und wenn der folgende Text sich ändert weiss ich dass es Angebote gibt
"Leider konnten keine Angebote mit den gewünschten Kriterien gefunden werden."Ist etwas irreführend, denn die Suchkriterien sind ja im System fix hinterlegt, man ruft also nur die Seite auf.
-
@aiouh sagte in Adapter für Webseitenüberwachung:
Leider konnten keine Angebote mit den gewünschten Kriterien gefunden werden
die arbeiten über iframes - daher muss ich übe immobilienscout seite gehen) aber versuche mal dieses script (du brauchst kein "cheerio" wie oben ! im log zeigt es , ob es angebote gibt - wäre interessant, ob die log ausgabe stimmt, wenn dann angebote da sind
const request = require('request'); let mySchedule1=" 12 */4 * * * "; // alle 4 stunden bei minute 12 //schedule(mySchedule1, function () { //request('https://fraenkel-ag.de/immobilien-angebote/wohnen/',(error, response, html)=>{ request('https://portal.immobilienscout24.de/ergebnisliste/80909765',(error, response, html)=>{ if (response.statusCode==200){ //log(html) if (html.includes('Leider konnten keine Angebote mit den ')) {log("keine Angebote")} else {log("neue Angebote sind da")} }});
-
@liv-in-sky Wow, Vielen Dank. Ich lass das mal tuckern und bin gespannt
-
heute gab es ein neues angebot
habe das script so verändert, das eine nachricht auf alexa kommt, wenn neues angebot da ist und auch, wenn ein angebot verschwindet - ich hoffe, dass script macht alles richtig - werden wir dann sehen, wenn sich die angebote ändern bzw gelöscht bzw dazukommen
- du musst das mit dem cheerio - wie oben erklärt" machen
- du brauchst 2 datenpunkte, die du im script oben einträgst
- man kann auch eine benachrichtigung für telegram, whatsapp,email oder sowas dazufügn
- es ist jetzt ein schedule drin - dann läuft es automatisch
-
@liv-in-sky
Test läuft
-
@liv-in-sky Hi, scheinz zu klappen. Der DBP sieht bei mir jetzt so aus.
/expose/80909765/129468267
Wäre schick wenn das gleich eine URL wäre
Im "Alexa DP" steht
ein Angebote ist weg
-
habe es verfolgt - heute kam ein neues angebot und wurde mir gemeldet - etwas später kam dann, ein angebot ist weg und auch dies war richtig - das neue angebot wurde wieder gelöscht - hat schon mal gut funktioniert
bei der url war ich mir nicht sicher, ob du die brauchst - wie möchtest du das eigentlich ansehen - über die vis oder über eine nachricht?