我正在嘗試將一系列自定義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。
我正在嘗試將一系列自定義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