我有一个脚本,该脚本使用RSelenium来自动下载Excel文件。我要完成的工作是:假设这是自动化的,每天在服务器上运行。如何下载并将其重新导入R?
library(rvest)
library(RSelenium)
remDr <- remoteDriver(port=4444L)
remDr$open()
remDr$navigate("http://abc.xyz.com/Login.aspx?ReturnUrl=%2fOrdersAndDelivery%2fOrderStatus.aspx")
username <- remDr$findElement(using = "name", value = "ctl00$MainContent$Login1$UserName")
username$sendKeysToElement(list("xxx"))
password <- remDr$findElement(using = "name", value = "ctl00$MainContent$Login1$Password")
password$sendKeysToElement(list("xxx"))
login <- remDr$findElement(using = "name",value = "ctl00$MainContent$Login1$LoginButton")
login$clickElement()
format_status <- remDr$findElement(using = 'xpath', "//*/option[@value = 'Excel']")
format_status$clickElement()
submit <- remDr$findElement(using = "id",value = "SubmitButton")
submit$clickElement()
最后一个submit$clickElement()
是一个看起来像这样的按钮:
然后它开始处理,然后弹出:
同时,一个新文件出现在我的“下载”文件夹中,其外观如下:q5vu64p4.xlsx.part
我不知道为什么下载为xlsx.part
,更不用说.part
的含义了。虽然我可以通过Excel很好地打开文件,但由于每次文件名都不相同,因此很难实现自动化。一次是mkTjuSd2.xlsx.part
,另一次是kZ8+dKF0.xlsx
,所以没有一致性。
如何正确地以自动化方式提取文件?
答案 0 :(得分:0)
这是一个变通办法,但是您可以通过检查目录以查找最近x秒内添加的文件来标识文件名。这样,您可以识别文件的名称。
fileNames <- list.files()
index <- which(Sys.time() - file.info(fileNames)$mtime < 1)
fileNames[index]
示例:
write.csv(1, file = "test2.csv")
fileNames <- list.files()
index <- which(Sys.time() - file.info(fileNames)$mtime < 1)
fileNames[index]