可以从网页列表中下载特定文件吗?

时间:2011-05-26 05:28:32

标签: r download

我想从网页上下载文件,例如

http://www.pdb.org/pdb/explore/explore.do?structureId=2FBA http://www.pdb.org/pdb/explore/explore.do?structureId=2GVS

我有一个包含2FBA,2GVS等的列表......

通过使用RCurl和XML,我知道R可以帮助将信息从网站废弃到数据帧。我可以使用R从网页下载所有2FBA.pdb,2GVS.pdb等文件,同时使用R指示如何替换最后4个字母(2FBA到2GVS ......)并将所有这些文件下载到我的工作中计算机?

在我看来,它可以通过python(来自stackoverflow的先前回复)来完成。但是,我对python不太熟悉。这就是为什么我要问R能否以聪明的方式为我做类似的事情。感谢您的评论。

2 个答案:

答案 0 :(得分:4)

以下是使用plyr包的一种方法。我们的想法是构建一个函数,下载给定蛋白质的pdb文件,然后使用l_ply中的plyr循环遍历蛋白质列表。

# function to download pdb file for a given protein
download_pdb = function(protein){

    base_url  = "http://www.pdb.org/pdb/files/"
    dest_file = paste(protein, '.pdb.gz', sep = "")    
    protein_url = paste(base_url, dest_file, sep = "")
    download.file(protein_url, destfile = dest_file)

}

proteins  = list('2FBA', '2GVS')
require(plyr)
l_ply(proteins, download_pdb)

答案 1 :(得分:3)

我首先将所需的网址粘贴在一起,然后使用download.file包中的utils

的内容
my.url <- "www.somewhere.com"
my.files <- c("file1.xxx", "file2.xxx", "file3.xxx")

my.list <- as.list(paste(my.url, my.files, sep = "/"))

my.dl <- lapply(X = my.list, FUN = download.file)