2012-09-28 1 views
0

나는 Mechanize for ruby를 사용하여 웹 크롤러를 만들고 있습니다. 한 번에 200k의 배치를 실행할 것이며 사이트 요청이 유효하지 않은 인스턴스 변수를 설정하고 get 요청이 오류를 반환하면 다음 사이트로 이동할 수 있기를 원합니다. 예를 들어 http get 요청이 Error 101 (net::ERR_CONNECTION_RESET): The connection was reset.에 해고되고 내 응용 프로그램이 중단되면 반환하는 사이트를 크롤링하고 있습니다.복구 net :: ERR_CONNECTION_SET 기계화 루비

def crawl 
    agent = Mechanize.new 
    agent.log = Logger.new('out.log') 
    agent.user_agent_alias = 'Mac Safari' 
    begin 
     page = agent.get(@url) 
    rescue Mechanize::ResponseCodeError => exception 
     if exception.response_code == '400' or exception.response_code == '500' 
     @isActive = false 
     return 
     end 
    end 
    end 

내가 그렇게 잡을해야 내가 ERR_CONNECTION_RESET 복구하거나 사람이 작업을 수행하는 데 사용되는 방법은 무엇입니까 예외가 있습니까?

답변

1

왜 모든 것을 잡을 수 없습니까?

begin 
    page = agent.get(@url) 
rescue 
    @isActive = false 
end 
+0

그래, 그랬어. 나는 실제로 어떤 예외가 제기되었는지 그리고/또는 왜, 나는 그 페이지를 얻을 수 없다는 것을 신경 쓰지 않는다. 그래서 나는 Rescue StandardError와 함께 갔다. –