Seite 1 von 1

Erreichbarkeit einer Webseite prüfen

Verfasst: Samstag 9. Februar 2019, 15:32
von DiDau
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

Re: Erreichbarkeit einer Webseite prüfen

Verfasst: Samstag 9. Februar 2019, 15:49
von nezzcarth
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"?).

Re: Erreichbarkeit einer Webseite prüfen

Verfasst: Samstag 9. Februar 2019, 15:55
von kbr
Am besten wäre es ein Monitor-Skript auf dem Server selbst laufen zu lassen. Falls das nicht geht, würde ich auch requests empfehlen. Mit .get die Adresse ansprechen und ggf. einen timeout als Parameter mit angeben.

Re: Erreichbarkeit einer Webseite prüfen

Verfasst: Samstag 9. Februar 2019, 16:20
von DiDau
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

Re: Erreichbarkeit einer Webseite prüfen

Verfasst: Samstag 9. Februar 2019, 16:50
von Sirius3
Das Stichwort ist ›Exception-Handling‹.

Re: Erreichbarkeit einer Webseite prüfen

Verfasst: Samstag 9. Februar 2019, 17:11
von DiDau
Excect: - Super, danke, damit bin ich weitergekommen,
hängt sich nicht mehr auf!

Re: Erreichbarkeit einer Webseite prüfen

Verfasst: Samstag 9. Februar 2019, 19:16
von DasIch
kbr hat geschrieben: Samstag 9. Februar 2019, 15:55 Am besten wäre es ein Monitor-Skript auf dem Server selbst laufen zu lassen.
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.

Re: Erreichbarkeit einer Webseite prüfen

Verfasst: Samstag 9. Februar 2019, 23:30
von kbr
Falls der OP noch weitere Server im gleichen oder in anderen Rechenzentren betreibt, oder dieses plant, lässt sich das ja einrichten. Mein Eindruck war, dass dies nicht der Fall ist.