私がしているのは、mechanizeをロードし、404を返すページを取得することだけです。しかし、それはまさに私が望んでいることです。404ページには、私の例で使用したいhtmlがたくさんあります。
a = mechanize.new
a.get('http://www.youtube.com/watch?v=e4g8jriw4rg')
a.page
=> nil
私はこれについてこれ以上の情報を見つけることができないようです。
私がしているのは、mechanizeをロードし、404を返すページを取得することだけです。しかし、それはまさに私が望んでいることです。404ページには、私の例で使用したいhtmlがたくさんあります。
a = mechanize.new
a.get('http://www.youtube.com/watch?v=e4g8jriw4rg')
a.page
=> nil
私はこれについてこれ以上の情報を見つけることができないようです。
例外を処理する必要があります。
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
これは答えが書かれたとき(約5年前にコードが変更された)の場合であったかもしれませんが、もはやそうではありません。allowed_error_codes
これで、エージェントインスタンスで、例外なく処理するHTTP応答コードに設定された値を持つ整数または文字列の配列に設定できます。ドキュメント(これを書いている時点で)は、「2xx、3xx、および401ステータスコードは、このリストをチェックせずに処理される」と述べています。