Safouen
Safouen

Reputation: 133

Test existance of a page using mechanize

I want to test if an url exist before downloading it I usully do this

agent=Mechanize.New
page=agent.get("www.some_url.com/atributes")

but insted of that I want to test if a page is attributed to that url before downloading it

Upvotes: 2

Views: 544

Answers (1)

Patrick Oscity
Patrick Oscity

Reputation: 54714

The only way to see if a page exists (and that you can reach it via the internet) is to perform an actual request. You could first do a HTTP HEAD request, which only requests the headers, not the actual content:

url = "www.some_url.com/atributes"

agent = Mechanize.New

begin
  agent.head(url)
  page_exists = true
rescue SocketError
  page_exists = false
end

if page_exists
  page = agent.get(url)
  # do something with page ...
end

But then again, you can just get rid of the extra request and rescue from errors directly with the GET request:

url = "www.some_url.com/atributes"

agent = Mechanize.New

begin
  page = agent.get(url)
  # do something with page ...
rescue SocketError
  puts "There is no such page."
end

Upvotes: 2

Related Questions