[R] 設定逾時判斷

最近爬蟲偶爾遇到爬某網站時就卡住,
因此想說可否設定當讀取超過多少秒時,
則判斷為錯誤,
然後跳到下一個。

後來發現 R.utils evalWithTimeout
他可以設定當某個指令或 function 跑多少秒以上就丟出 TimeoutException。
因此當我在讀某個網站讀太久時,
就跳過他換下一個,
就不會整個卡住了。
例如我設定暫停時間為4秒,而timeout時間設定為3秒,就會丟出error:

evalWithTimeout(Sys.sleep(4), timeout = 3, onTimeout = "error")

另外如果是使用 RSelenium 來爬蟲,
其設定方法為 remDr$setTimeout(type = "page load", milliseconds = 30000)

其他如利用 trycatch 來特別處理TimeoutException可看:連結

沒有留言:

張貼留言