Seite 1 von 1
Suche simples Tool zur Webüberwachung
Verfasst: 29.12.2009 11:56
von Kukulkan
Hallo,
Ich suche eine Anwendung (lokale Installation) die folgendes könnens soll:
Eine Web-URL (https://) soll im 5 Minuten Takt aufgerufen werden. Die Rückgabe möchte ich gegen eine Regular Expression auswerten können (den ganzen Rückgabetext der Seite). Wenn die RegExp nicht zutrifft, möchte ich per Mail (SMTP) benachrichtigt werden. Fertig. Ich hab jetzt eine Stunde in Google gesucht und finde nur Webservices (zwei getestet, keiner kann die Rückgabe auswerten) oder überdimensionales (wie zB Nagios). Kennt jemand so ein einfaches Tool? Freeware oder Open Source?
Ich könnte das in PB selbst programmieren, aber dazu hab ich einfach nicht die Zeit
Danke,
Volker
Re: Suche simples Tool zur Webüberwachung
Verfasst: 29.12.2009 12:16
von ZeHa
Dann programmier es in Python, das dürften keine 5 Zeilen sein
Re: Suche simples Tool zur Webüberwachung
Verfasst: 29.12.2009 12:46
von Kiffi
@Volker:
auf die Schnelle:
Code: Alles auswählen
EnableExplicit
InitNetwork()
Enumeration ; Windows
#frmMain
EndEnumeration
Enumeration ; Gadgets
#frmMain_LOG
EndEnumeration
Enumeration ; Timer
#timCheckWebPage
EndEnumeration
Global Page2Check.s = "http://www.inspirant.de/" ; Page, die überwacht werden soll
Global CheckTime = 5 * 60000 ; alle 5 Minuten prüfen
Procedure AddLog(LogMessage.s)
AddGadgetItem(#frmMain_LOG, -1, FormatDate("%hh:%ii:%ss", Date()) + ": " + LogMessage)
SetGadgetState(#frmMain_LOG, CountGadgetItems(#frmMain_LOG) - 1)
EndProcedure
Procedure CheckWebPage()
Protected MD5.s
Static InitialMD5.s
AddLog("Ermittle Änderungen an der Webpage...")
DeleteFile(GetTemporaryDirectory() + "deleteme.html")
; vorher Cache leeren
DeleteURLCacheEntry_(Page2Check)
; Download der Datei
UrlDownloadToFile_(0, Page2Check, GetTemporaryDirectory() + "deleteme.html", 0, 0)
MD5 = MD5FileFingerprint(GetTemporaryDirectory() + "deleteme.html")
If InitialMD5 = ""
; erster Aufruf -> initiale MD5 ermitteln, ansonsten nix tun
InitialMD5 = MD5
AddLog("Initiale MD5 ermittelt")
Else
; ermittelte MD5 unterscheidet sich von initialer MD5
If InitialMD5 <> MD5
AddLog("WebPage hat sich geändert!")
AddLog("1. MD5: " + InitialMD5)
AddLog("2. MD5: " + MD5)
AddLog("Schreibe Mail...")
; Mail schreiben
If CreateMail(0, "volkers@mailadresse", "Achtung!")
AddMailRecipient(0, "volkers@mailadresse", #PB_Mail_To)
SetMailBody(0, "WebPage hat sich verändert!")
SendMail(0, "smtp.yourfavoritesmtp.com")
FreeMail(0)
EndIf
AddLog("Fertig")
Else
AddLog("Keine Änderungen ermittelt.")
EndIf
EndIf
EndProcedure
Procedure OpenWindow_frmMain()
Protected WindowFlags
WindowFlags | #PB_Window_SystemMenu
WindowFlags | #PB_Window_ScreenCentered
OpenWindow(#frmMain, #PB_Ignore, #PB_Ignore, 300, 300, "PageChecker", WindowFlags)
ListViewGadget(#frmMain_LOG, 0, 0, 0, 0)
EndProcedure
Procedure Main()
Protected WWE
Protected Quit
OpenWindow_frmMain()
AddWindowTimer(#frmMain, #timCheckWebPage, CheckTime)
Repeat
WWE = WaitWindowEvent()
Select WWE
Case #PB_Event_CloseWindow
Quit = #True
Case #PB_Event_SizeWindow
ResizeGadget(#frmMain_LOG, #PB_Ignore, #PB_Ignore, WindowWidth(#frmMain), WindowHeight(#frmMain))
Case #PB_Event_Timer
Select EventTimer()
Case #timCheckWebPage
CheckWebPage()
EndSelect
EndSelect
Until Quit = #True
EndProcedure
Main()
ZeHa hat geschrieben:Dann programmier es in Python, das dürften keine 5 Zeilen sein
ich weiss ja nicht, wie Volkers Kenntnisse in Python sind, aber allein das einarbeiten
dürfte länger dauern als ein Deluxe-Programm in PB zu schreiben, oder?
<Sonium> someone speak python here?
<lucky> HHHHHSSSSSHSSS
<lucky> SSSSS
<Sonium> the programming language
Grüße ... Kiffi
Re: Suche simples Tool zur Webüberwachung
Verfasst: 29.12.2009 13:16
von Kukulkan
Hi Kiffi,
Wow, das ist wirklich Nett von Dir. Ja, so geht es allerdings recht praktisch. Ich muss nur noch den RegExp Teil einbauen. Vielen Dank!!!!
Nein, ich spreche weder Schlangensprache noch die Programmiersprache Python

SSSSHHHHHHHSHSSHHHHHH
Volker
Re: Suche simples Tool zur Webüberwachung
Verfasst: 30.12.2009 12:21
von ZeHa
Python ist echt hundseinfach

und ist voller brauchbarer Standard-Libraries, d.h. das wären nur Funktions-Calls und ein If gewesen

kann jedem nur empfehlen sich die Sprache mal anzuschauen.
Code: Alles auswählen
import urllib
import re
import smtplib
regex = 'dein regex-pattern'
html = urllib.openurl('http://www.google.de')
mailserver = smtplib.SMTP('localhost')
if re.match(regex, html):
mailserver.sendmail('absender@adresse', 'empfaenger@adresse', 'es wurde was gefunden')
Re: Suche simples Tool zur Webüberwachung
Verfasst: 30.12.2009 13:28
von Kiffi
Hey ZeHa, Du Schummler!
Deine 5 Zeilen Python prüfen die Page ja nur
einmal (und nicht zyklisch, wie von Volker gewünscht).
PB kann man dann natürlich auch auf wenige
Zeilen eindampfen und in einen Scheduled Task
packen.
> Python ist echt hundseinfach

> und ist voller brauchbarer Standard-Libraries
Python wollte ich mir immer schon mal anschauen
(und Ruby und Perl und und und...)
Grüße ... Kiffi
Re: Suche simples Tool zur Webüberwachung
Verfasst: 30.12.2009 13:46
von ZeHa
Jo, wenn man da noch 'nen Thread und ein Sleep einbaut, dann sind das halt ca. 4 Zeilen mehr
Wir benutzen Python beim Arbeiten und ich kann echt nur sagen, super Sprache. Am besten gefällt mir u.a. daß so Dinge wie Listen und Dictionaries gleich direkt in die Sprache integriert sind, wodurch sich halt echt so einiges anstellen läßt, was in anderen Sprachen oft 5x so umständlich gelöst werden muß.