Ruby - 即使页面内容不存在,也能获取页面内容

问题描述:

我正在尝试将一系列自定义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。

你需要从错误中解救

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

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