0
我創建了一個使用機械化ruby的網絡爬蟲。我將一次運行200k批次,我希望能夠設置一個實例變量,該站點無效,並在get請求返回錯誤時繼續下一個站點。例如,我正在爬取一個網站,當一個http請求被觸發時,它會返回Error 101 (net::ERR_CONNECTION_RESET): The connection was reset.
和我的應用程序崩潰。恢復網:: ERR_CONNECTION_SET機械化紅寶石
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恢復或什麼的,你們來做到這一點的方法嗎?
是的,這就是我所做的。我其實並不在乎引發了哪個異常和/或爲什麼,我只關心那個頁面無法獲取。所以我去了Rescue StandardError。 –