【问题标题】:Mechanize/Ruby read source code of 404 pageMechanize/Ruby读取404页面源码
【发布时间】:2012-11-02 01:53:37
【问题描述】:
我所做的只是加载 mechanize,并获得一个返回 404 的页面。但这正是我想要的。 404 页面有很多我想在我的示例中使用的 html。
a = mechanize.new
a.get('http://www.youtube.com/watch?v=e4g8jriw4rg')
a.page
=> nil
我似乎找不到任何关于此的更多信息。
【问题讨论】:
标签:
http-status-code-404
mechanize
【解决方案1】:
你需要处理异常:
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
【解决方案2】:
这可能在编写答案时就是这种情况(代码大约在 5 年前更改),但现在不再是这种情况。您现在可以将代理实例上的allowed_error_codes 设置为整数或字符串数组,其值设置为您希望无异常处理的 HTTP 响应代码。文档(在撰写本文时)指出“将在不检查此列表的情况下处理 2xx、3xx 和 401 状态代码。”