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:
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
Danach kann die Existenz einer URL geprüft werden:
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
Eingestellt am 11.03.2010 um 10:46
Kategorie: Tutorials
3 Kommentare zu “Script-Tip: URL auf Existenz prüfen”
Suchen auf rubyonrails.de
Tags
2.0 ActiveRecord Ajax Authentication Buch Capistrano Controller CSS Enterprise Event Formulare Gewinnspiel Grundlagen IDE irb jQuery Kochbuch Konferenz MySQL OReilly Passenger Phusion Plugin PragProgs Rails Rails 3 Rails 3.1 Release Release Candidate Routing Ruby RubyGems rubyonrails.de Ryan Bates Sass Screencast Script-Tip Security Test Tools Tutorial Upgrade Video Views WindowsAktuelle Artikel
- Screencast: Das Rails API Gem
- Screencast: Mehrseitige Formulare mit Wicked
- Screencast: Queue Classic
- Screencast: Migration nach PostgreSQL
- Screencast: DataTables
- Screencast: Globalize3
- Screencast: Copycopter
- Screencast: Compass & CSS Sprites
- Screencast: Einführung in das Refinery CMS
- Screencast: Besseres Sass mit Bourbon
Artikel Archiv
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- May 2009
- April 2009
- March 2009
- February 2009
- December 2008
- November 2008
- August 2008
- July 2008
- June 2008
- May 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
Aktuelle Rails Version + Abhängigkeiten:
Gem rails-3.0.0actionmailer (= 3.0.0, runtime)
actionpack (= 3.0.0, runtime)
activerecord (= 3.0.0, runtime)
activeresource (= 3.0.0, runtime)
activesupport (= 3.0.0, runtime)
bundler (~> 1.0.0, runtime)
railties (= 3.0.0, runtime)
Rails auf Rubyforge
Rails auf Github

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.
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
Vielen Dank. Damit klappt es wunderbar.