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/
Net::HTTP.get
直接返回页面内容作为一个字符串,所以没有必要调用.content
的结果:
page_content = Net::HTTP.get(URI.parse(url))
puts page_content
我相信,如果页面回复是404,仍然会产生一个错误..如何覆盖那? – user3610137
当遇到404时,我不会收到任何错误 - 可能它与ruby的版本有关 - 您使用的是哪个版本? – infused
“ruby 2.1.5p273” – user3610137
这不会返回任何东西 – user3610137
它适用于ruby-2.1.0。我添加了明确的要求,但您可能并不需要 – jjk
感谢您的答案!是否有可能的方法来逐行解析以查找数据?检查页面是否包含(“你破坏了!”) – user3610137