`walk`下载文件并将链接url存储为文件名

`walk`下载文件并将链接url存储为文件名,r,R,我试图从一些链接中提取一些信息 我正在应用以下功能: walk(filinginfohref, function(x) { download.file(x, destfile = paste0("D:/deleteme/",x), quiet = FALSE) }) 但是,它返回以下错误: Error in download.file(x, destfile = paste0("D:/deleteme/", x), quiet = FALSE) : cannot open dest

我试图从一些链接中提取一些信息

我正在应用以下功能:

walk(filinginfohref, function(x) {
  download.file(x, destfile = paste0("D:/deleteme/",x), quiet = FALSE)
})
但是,它返回以下错误:

 Error in download.file(x, destfile = paste0("D:/deleteme/", x), quiet = FALSE) : 
  cannot open destfile 'D:/deleteme/https://www.sec.gov/Archives/edgar/data/1750/000104746918004978/0001047469-18-004978-index.htm', reason 'Invalid argument' 
我认为这是因为我无法将链接存储为目标文件

我需要以某种方式保留文件下载位置的链接

我如何克服这个问题

资料


FilingInfo href每个链接都将
/
解释为文件夹。构建的路径不存在

请将
destfile=paste0(“D:/deleteme/”,x)
替换为
destfile=paste0(“D:/deleteme/”,gsub(“/”,”,_x,fixed=TRUE))

通过这种方式,您可以使用字符
\uu
来避免麻烦


可能有一种方法可以保持链接的完整性。

正如您所了解的,windows不允许您使用特殊字符保存这些名称文件。添加一个函数来删除文件名的公共部分,并去掉那些“/”

库(purrr)

htmName如果您试图写入不存在的子文件夹,则每个
/
都用于构建Pathh,无论如何,在windows中,我可以将文件另存为“
http://www.link.com
“然后这些“”之间的所有内容都将是文件名?或者我可以只
sub
这里的部分
1750/000104746917004528/0001047469-17-004528-index.htm
并用
一些特殊字符替换“\”,然后我可以将其转换回来稍后进入链接格式。很高兴它有帮助。我会将
/
替换为
.
例如,刚好准时
filinginfohref <- c("https://www.sec.gov/Archives/edgar/data/1750/000104746918004978/0001047469-18-004978-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746917004528/0001047469-17-004528-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746916014299/0001047469-16-014299-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746915006136/0001047469-15-006136-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746914006243/0001047469-14-006243-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746913007797/0001047469-13-007797-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746912007300/0001047469-12-007300-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746911006302/0001047469-11-006302-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746910006500/0001047469-10-006500-index.htm", 
"https://www.sec.gov/Archives/edgar/data/1750/000104746909006783/0001047469-09-006783-index.htm"
)
library(purrr)

htmName <- function (x) {
    x <- gsub("https://www.sec.gov/Archives/edgar/data/", "",x)
    x <- gsub("/","_",x)
    return(x)
}

walk(filinginfohref, function(x) {
    download.file(x, destfile = paste0("output/", htmName(x)), quiet = FALSE)
})