我正在使用 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 中恢复,或者你们过去使用的方法是什么?