2012-11-02 4 views
3

내가하고있는 일은 기계화를로드하고 404를 반환하는 페이지를 만드는 것입니다.하지만 그것이 내가 원하는 것입니다. 404 페이지에는 필자의 예제에서 사용하고 싶은 많은 html이 있습니다.Mechanize/Ruby 404 페이지의 소스 코드 읽기

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

나는 이것에 대한 자세한 정보를 찾을 수 없습니다.

답변

11

당신은 예외 처리 할 필요가 없습니다 :

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 
1

수도 답이 기록 된 사건이었다 (코드는 약 5 년 전 변경) 한을하지만 더 이상 사건. 이제 에이전트 인스턴스의 allowed_error_codes을 Integer 또는 String 배열로 설정하고 값을 예외없이 처리하려는 HTTP 응답 코드로 설정합니다. 문서 (이 글을 쓰는 시점에서)는 "2xx, 3xx 및 401 상태 코드는이 목록을 확인하지 않고 처리됩니다."