2017-10-19 48 views
0

尝试使用网络链接下载多个zip文件。通过这种方法,下载文件,因为得到的文件名覆盖相同的多个年 -R - 网页报废和下载多个zip文件并保存文件不会被覆盖

library(rvest) 

url <- "https://download.open.fda.gov/" 
page <- read_html(url) 

zips <- grep("\\/drug-event",html_nodes(page,"key"), value=TRUE) 
zips_i<-gsub(".*\\/drug\\/","drug/",zips) 
zips_ii<-gsub("</key>","",zips_i) 
zips_iii<-paste0(url, zips_ii) 

lapply(zips_iii, function(x) download.file(x, basename(x))) 

有没有办法不覆盖已下载的文件?

回答

0

这是我走到这一步 -

#load the library 
library(rvest) 

#link to get the data from 
url <- "https://download.open.fda.gov/" 
page <- read_html(url) 

#clean the URL 
zips <- grep("\\/drug-event",html_nodes(page,"key"), value=TRUE) 
zips_i<-gsub(".*\\/drug\\/","drug/",zips) 
zips_ii<-gsub("</key>","",zips_i) 
zips_iii<-paste0(url, zips_ii) 

#destination vectors 
id=1:length(zips_iii) 
destination<-paste0("~/Projects/Projects/fad_ade/",id) 

#file extraction 
mapply(function(x, y) download.file(x,y, mode="wb"),x = zips_iii, y = destination)