0

我正在使用 Mechanize for ruby​​ 创建一个网络爬虫。我将一次运行 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 回答