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