【问题标题】: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 状态代码。”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多