withTimeout无法在函数内部工作?

时间:2017-09-07 10:42:50

标签: r rvest rcurl

我遇到R.utils::withTimeout()的一些问题。它似乎根本没有将超时选项纳入帐户,或者仅有时。在我想要使用的功能下面:

scrape_player <- function(url, time){

  raw_html <- tryCatch({
    R.utils::withTimeout({
      RCurl::getURL(url)
    },
    timeout = time, onTimeout = "warning")}
  )

  html_page <- xml2::read_html(raw_html)
}

现在我使用它时:

scrape_player("http://nhlnumbers.com/player_stats/1", 1)

它可以正常工作,我得到我想要的html页面,或者我收到一条错误消息,告诉我已达到已用时限,或者,这是我的问题,需要很长时间,比1秒,最后返回一个错误500的html页面。

RCurl::getURL()不应该只尝试1秒(在示例中)获取html页面,如果没有,只需返回警告?我错过了什么?

1 个答案:

答案 0 :(得分:0)

好的,我做了一个解决方法:而不是返回页面,我把它写到磁盘上。没有解决withTimeout似乎不起作用的问题,但至少我看到我正在慢慢但肯定地将页面写入磁盘。