我正在尝试使用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"
)
答案 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()