使用xls Excel工作簿下载文件问题

时间:2018-04-13 07:09:54

标签: r download xls

我正在尝试使用R的xls函数(download.file)下载Excel工作簿Windows 10, R version 3.4.4 (2018-03-15)

当我手动下载文件(使用Internet Explorer或Chrome)时,文件会下载,然后我可以在Excel中打开它而不会出现任何问题。

当我在R中使用download.file时,文件会下载但尺寸小于正确的下载文件 - 此文件为hmtl文件,其中包含一些不支持我的浏览器的注释。 Tyred不同的模式,没有运气。

我的代码:

download.file(
        url = "https://www.atsenergo.ru/nreport?fid=696C3DB7A3F6019EE053AC103C8C8733",
        destfile = "C:/MyExcel.xls",
        mode = "wb",
        method = "auto"
      )

1 个答案:

答案 0 :(得分:0)

使用RSelenium库解决此问题。 ATS站点拒绝任何下载文件的查询(返回.hmtl文件,其中包含必需的启用javascript的消息),在这种情况下,Selenium方法仅起作用。我的代码如下(其中urlList数据框与文件下载链接):

rD <- rsDriver(port = 4444L,
               browser = "chrome",
               check = FALSE,
               geckover = NULL,
               iedrver = NULL,
               phantomver = NULL)
remDr <- rD$client
for (i in 1:nrow(urlList)) {
  tryCatch({
    row <- urlList[i,]

    remDr$navigate(row$url)

    webElem <-
      remDr$findElement(using =
                          'link text', row$FileName)
    webElem$clickElement()
  },
  error = function(e)
    logerror(paste(
      substr(e, 1, 50),
      atsCode,
      dateFileName,
      sep = "\t"
    ), logger = loggerName),
  finally = next)
}

remDr$close()
# stop the selenium server
rD[["server"]]$stop()