我有一个 Excel 文件,其中包含我打算下载的 10,000 多个文档(PDF 和 Word 文档)的列表。每个文件都链接到一个 SharePoint URL。
我的目标是在 R 中设计一个脚本,可以自动访问和下载这些文档。
我尝试了以下操作,但导致下载损坏。
library(readxl)
library(httr)
data <- read_excel("data/in/doclist.xlsx")
urls <- data$url
for (url in urls) {
# Send a GET request to the URL
response <- GET(url)
# Extract the file name from the URL
file_name <- basename(url)
# Specify the path where you want to save the downloaded files
save_path <- paste0("data/out/", file_name)
# Save the downloaded file
writeBin(content(response), save_path)
# Print a message to indicate the successful download
cat("File", file_name, "downloaded successfully.\n")
}
我无法打开下载的文档(“Word 在尝试打开文件时遇到错误”和“Adobe Acrobat Reader 无法打开 xyz,因为它不是受支持的文件类型或文件已损坏”)。
我怀疑该问题可能是由于在 SharePoint 上访问这些文档的双因素身份验证要求造成的。当尝试下载可公开访问的 PDF 时,代码运行顺利,允许我打开下载的文件。此外,我可以在 SharePoint 中单独访问这些文档,因为我拥有必要的登录凭据。
任何指导或替代方法都将不胜感激。预先感谢您。
这里有两种可以考虑的方法:
#Approch 1
library(RDCOMClient)
FSO <- COMCreate("scripting.filesystemobject")
FromPath <- "//sharepoint.xxx/xxx/xxx/test.docx"
ToPath <- "C:\\xxx\\test.docx"
FSO$CopyFile(FromPath, ToPath)
#Approch 2
library(RDCOMClient)
FSO <- COMCreate("scripting.filesystemobject")
FromPath <- "//sharepoint.xxx/xxx/xxx/test.docx"
ToPath <- "C:\\xxx\\test.docx"
FSO$CopyFile(FromPath, ToPath)