【发布时间】:2012-09-28 05:28:45
【问题描述】:
我正在使用 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 中恢复,或者你们过去使用的方法是什么?
【问题讨论】:
标签: ruby web-crawler mechanize net-http mechanize-ruby