使用用户名和密码通过https下载多个文件

时间:2014-09-27 19:31:55

标签: r

我有一个数据框dat,其中包含一个ID变量和几个带有URL的变量,用于下载声音文件。

dat <- data.frame(id=c(1, 2, 3, 4),
                  recording1=c("someURL", "someURL", "someURL", "someURL"),
                  recording2=c("someURL", "someURL", "someURL", "someURL"),
                  recording3=c("someURL", "someURL", "someURL", "someURL"),
                  recording4=c("someURL", "someURL", "someURL", "someURL"))

我需要下载每个文件(基本上是n x 5-1矩阵的每个单元格)并使用列名和观察ID保存文件。类似的东西:

for (i in 2:length(dat)) {
  for (r in 1:nrow(dat)) {
    download.file(as.character(dat[r,i]), 
                  destfile=paste(names(dat)[i], dat$id[r], "wav", sep="."),
                  method="curl"))
  }
}

根据download.file()的帮助,此功能不支持https。如何修改我使用https的方法并包括用户名(电子邮件)和密码?

sessionInfo()
# R version 3.0.2 (2013-09-25)
# Platform: x86_64-apple-darwin10.8.0 (64-bit)

1 个答案:

答案 0 :(得分:2)

开始使用httr套餐并使用write_disk选项GET

GET(as.character(dat[r, i]), 
    authenticate("username", "password"),
    write_disk(destfile=paste(names(dat)[i], dat$id[r], "wav", sep=".")))

(更新以反映OP提醒我并在评论中修复的身份验证的需要)