Hallo in die Runde
Ich schaffe es leider nicht eine Webseite, die immer wieder ausfällt, zu überprüfen. Ich stelle mir vor, dass eine Routine im Hintergrund läuft, die in bestimmten Intervallen auf die Seite zugreift. Erhält sie eine positive Rückmeldung ist alles OK.
Ist die URL nicht erreichbar (ausgefallen), dann soll auf Windows eine Message-Box die Warnung nzeigen.
Mit welchem Modul lässt sich die Erreichbarkeit überprüfen?
Da ich neu in der Python-Programmierung bin, konnte ich mit keiner Dokumentation, das Problem lösen.
Ich benutze die neueste Version von Python (3.7.2, will auch dabei bleiben).
Kann mir jemand weiterhelfen?
Danke und Gruss
DiDau
Erreichbarkeit einer Webseite prüfen
Gegenfrage: Hast du auf das System, auf dem die Website läuft, Zugriff?
Ansonsten kann man das z.B. mit dem requests-Modul lösen. Wenn die Seite nicht reagiert, gibt es eine Exception; zudem kannst du leicht auf 4xxer und 5xxer Status-Codes prüfen. Theoretisch reicht auch urllib aus der Standardbibliothek, requests ist m.M.n. aber komfortabler. Persönlich mag ich Skripte, die die ganze Zeit durchlaufen nicht gerne. Unter Linux würde ich das Skript (bzw. vmtl. eher curl, statt selbst was du basteln) mit einem Cronjob aufrufen, unter Windows gibt es sowas doch auch ("Aufgabenplanung"?).
Ansonsten kann man das z.B. mit dem requests-Modul lösen. Wenn die Seite nicht reagiert, gibt es eine Exception; zudem kannst du leicht auf 4xxer und 5xxer Status-Codes prüfen. Theoretisch reicht auch urllib aus der Standardbibliothek, requests ist m.M.n. aber komfortabler. Persönlich mag ich Skripte, die die ganze Zeit durchlaufen nicht gerne. Unter Linux würde ich das Skript (bzw. vmtl. eher curl, statt selbst was du basteln) mit einem Cronjob aufrufen, unter Windows gibt es sowas doch auch ("Aufgabenplanung"?).
Besten Dank für die Rückmeldung
mit urllib.request habe ich es schon mal versucht und bin nicht weitergekommen.
Ich kann die Rückgabe (<urlopen error [Errno 11001] getaddrinfo failed> )nicht abfangen, wenn die Seite nicht erreicht wird.
Ich weiss nicht wie ich den Befehl einbette, dass ich die Rückmeldung abfange.
Bei existierender URL funktioniert, wenn nicht - was tun?
*******************************************
import urllib.request
html = ""
with urllib.request.urlopen('http://www.dich-gibt-es-nicht.com') as response:
html = response.read()
print(html)
*******************************************
Sorry - wahrscheinlich grundlegend die Frage.
Dennoch, Dank an Helfer!
DiDau
mit urllib.request habe ich es schon mal versucht und bin nicht weitergekommen.
Ich kann die Rückgabe (<urlopen error [Errno 11001] getaddrinfo failed> )nicht abfangen, wenn die Seite nicht erreicht wird.
Ich weiss nicht wie ich den Befehl einbette, dass ich die Rückmeldung abfange.
Bei existierender URL funktioniert, wenn nicht - was tun?
*******************************************
import urllib.request
html = ""
with urllib.request.urlopen('http://www.dich-gibt-es-nicht.com') as response:
html = response.read()
print(html)
*******************************************
Sorry - wahrscheinlich grundlegend die Frage.
Dennoch, Dank an Helfer!
DiDau
Was wenn das Skript nicht läuft weil der Server down ist? Was wenn das Skript läuft und sagt dass alles ok ist aber die Webseite nicht erreichbar ist da es Netzwerk Probleme gibt?
Monitoring, zumindest dieser Art, macht man doch besser mit etwas Abstand.