使用R中的postForm函数下载csv文件

时间:2016-02-07 07:06:53

标签: r csv post rcurl downloading-website-files

我正在尝试使用postForm从网上下载csv数据,但是,下载的文件似乎是一个html文档而不是csv文件。 这些是我的代码:

############################
library(RCurl)

url <- "https://research.stlouisfed.org/fred2/series/MKTGDPSAA646NWDB/downloaddata"
params <- list(
  "native_frequency" = "Annual", units = "lin",
  "frquency" = "Annual", "aggregation" = "Average", "obs_start_date" = "1968-01-01",
  "obs_end_date" = "2014-01-01", "file_format" = "csv", "download_data_2" = "", format="csv")

result <- postForm( url, .params = params)
writeBin(as.vector(result),"doc2.txt")

1 个答案:

答案 0 :(得分:0)

稍微更现代的方法是使用httr包:

library(httr)

res <- POST("https://research.stlouisfed.org/",
            path="fred2/series/MKTGDPSAA646NWDB/downloaddata",
            body=list(`form[native_frequency]` = "Annual", 
                      `form[units]` = "lin", 
                      `form[frequency]` = "Annual", 
                      `form[aggregation]` = "Average", 
                      `form[obs_start_date]` = "1968-01-01", 
                      `form[obs_end_date]` = "2014-01-01", 
                      `form[file_format]` = "csv", 
                      `form[download_data_2]` = ""),
            write_disk("doc2.txt"))

warn_for_status(res)

##         DATE       VALUE
## 1 1968-01-01  4187777711
## 2 1969-01-01  4485777644
## 3 1970-01-01  5377333333
## 4 1971-01-01  7184853037
## 5 1972-01-01  9664157065
## 6 1973-01-01 14947391339