Script-Tip: URL auf Existenz prüfen

In unserem heutigen Script-Tip wollen wir euch zeigen wie die Existenz einer URL geprüft werden kann. Dazu wird der Response-Code der angefragten Seite validiert und ein entsprechender boolischer Wert zurückgegeben.

Eine Beispielimplementierung könnte folgendermaßen aussehen:
[ruby]
require ‚open-uri‘
require ’net/http‘

def existiert_url?(url)
url = URI.parse(url)
begin
Net::HTTP.start(url.host, url.port) do |http|
# An dieser Stelle kann bei Bedarf auch auf
# andere Response-Codes geprüft werden
return http.head(url.request_uri).code == "200"
end
rescue SocketError => se
# Fehlerbehandlung, wenn die Domain nicht existiert
# Je nach Applikation kann hier die entsprechende Aktion durchgeführt werden
rescue
# Alle anderen Fehlerfälle werden/können hier behandelt werden
end
end
[/ruby]

 

Danach kann die Existenz einer URL geprüft werden:

[ruby]
existiert_url? "http://www.rubyonrails.de/"
# => true: Die Startseite existiert
existiert_url? "http://www.rubyonrails.de/tag/rails-3/"
# => true: Es gibt eine Unterseite mit Artikeln/Tags zu Rails 3
existiert_url? "http://www.rubyonrails.de/GIBT-ES-NICHT"
# => false: Diese Unterseite existiert nicht
[/ruby]

3 Gedanken zu „Script-Tip: URL auf Existenz prüfen“

  1. Hallo,

    schönes Script, jedoch laufe ich immer auf folgenden Fehler, wenn ich eine URL eingebe die nicht existiert. Gibt es eine saubere Möglichkeit das abzufangen?

    getaddrinfo: nodename nor servname provided, or not known

    Danke.

  2. Hallo eller82,

    das Script hatte nur URLs von bekannten Domains geprüft, aber dies muss nicht immer gegeben sein. Daher habe ich es angepasst. In der neuen Version werden nun ggf. Fehler abgefangen und können nach Bedarf behandelt werden.

    Viele Grüße
    derKaan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.