3

我所做的只是加载 mechanize,并获得一个返回 404 的页面。但这正是我想要的。404 页面有很多我想在我的示例中使用的 html。

a = mechanize.new
a.get('http://www.youtube.com/watch?v=e4g8jriw4rg')
a.page
=> nil

我似乎无法找到有关此的任何进一步信息。

4

2 回答 2

12

您需要处理异常:

begin
  page = a.get 'http://www.youtube.com/watch?v=e4g8jriw4rg'
rescue Mechanize::ResponseCodeError => e
  puts e.response_code # the status code as a string, e.g. "404"
  page = e.page
end

puts page.title
于 2012-11-02T03:56:57.413 回答
0

写答案时可能是这种情况(代码大约在 5 年前更改),但现在不再如此。您现在可以allowed_error_codes在代理实例上设置整数或字符串数​​组,并将值设置为您希望无异常处理的 HTTP 响应代码。文档(在撰写本文时)指出“将在不检查此列表的情况下处理 2xx、3xx 和 401 状态代码。”

于 2017-11-23T18:16:25.240 回答