2015-10-14 70 views
-1

我正在嘗試將一系列自定義404頁面放在一起。Ruby - 即使頁面內容不存在,也能獲取頁面內容

require 'uri' 

def open(url) 
page_content = Net::HTTP.get(URI.parse(url)) 
puts page_content.content 
end 

open('http://somesite.com/1ygjah1761') 

以下代碼會退出程序並顯示錯誤。如何從網站獲取網頁內容,無論它是否爲404。

回答

1

你需要從錯誤中解救

def open(url) 
    require 'net/http' 
    page_content = "" 
    begin 
    page_content = Net::HTTP.get(URI.parse(url))   
    puts page_content 
    rescue Net::HTTPNotFound   
    puts "THIS IS 404" + page_content 
    end 
end 

你可以找到更多信息在這裏這樣的東西:http://tammersaleh.com/posts/rescuing-net-http-exceptions/

+0

這不會返回任何東西 – user3610137

+0

它適用於ruby-2.1.0。我添加了明確的要求,但您可能並不需要 – jjk

+0

感謝您的答案!是否有可能的方法來逐行解析以查找數據?檢查頁面是否包含(「你破壞了!」) – user3610137

0

Net::HTTP.get直接返回頁面內容作爲一個字符串,所以沒有必要調用.content的結果:

page_content = Net::HTTP.get(URI.parse(url)) 
puts page_content 
+0

我相信,如果頁面回覆是404,仍然會產生一個錯誤..如何覆蓋那? – user3610137

+0

當遇到404時,我不會收到任何錯誤 - 可能它與ruby的版本有關 - 您使用的是哪個版本? – infused

+0

「ruby 2.1.5p273」 – user3610137