0

Mechanize for ruby​​ を使用して Web クローラーを作成しています。一度に 200k のバッチを実行し、サイトが無効であることを示すインスタンス変数を設定し、get リクエストがエラーを返したときに次のサイトに移動できるようにしたいと考えています。たとえば、http get リクエストが発行さError 101 (net::ERR_CONNECTION_RESET): The connection was reset.れてアプリケーションがクラッシュしたときに返されるサイトをクロールしています。

  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 から回復できるようにキャッチする必要がある例外はありますか、またはこれを行うために使用したアプローチは何ですか?

4

1 に答える 1

1

なぜすべてをキャッチしないのですか?

begin
  page = agent.get(@url)
rescue
  @isActive = false
end
于 2012-09-28T06:33:37.677 に答える