【问题标题】:R: Scraping Site, Incrementing Loop by Date in URL, Saving To CSVR:抓取站点,在 URL 中按日期递增循环,保存到 CSV
【发布时间】:2016-04-04 00:31:31
【问题描述】:

我对 R 和网络抓取相对较新,因此对任何明显的错误表示歉意。

我希望从 URL 1 中抓取一个 CSV 文件,按日期递增到 URL 2,然后保存每个 CSV 文件。

startdate <- as.Date("2007-07-01")
enddate <- as.Date(Sys.Date())

for(startdate in enddate){ // Loop through dates on each URL 
    read.csv(url("http://api.foo.com/charts/data?output=csv&data=close&startdate=",startdate,"&enddate=",startdate,"&exchanges=bpi&dev=1"))
    startdate = startdate + 1
    startdate <- startdate[-c(1441,1442),] // Irrelevant to question at hand. Removes unwanted information auto-inserted into CSV. 
    write.csv(startdate[-c(1441,1442),], startdate, 'csv', row.names = FALSE)
}

正在输出以下错误:

read.csv(url("http://api.foo.com/charts/data?output=csv&data=close&startdate=",startdate,"&enddate=",startdate,"&exchanges=bpi&dev=1"))
// Error in match.arg(method, c("default", "internal", "libcurl", "wininet")) :'arg' should be one of “default”, “internal”, “libcurl”, “wininet”

和:

write.csv(startdate[c(1441,1442),], startdate, 'csv', row.names = FALSE)
//Error in charToDate(x) : character string is not in a standard unambiguous format

关于如何修复这些错误有什么建议吗?

【问题讨论】:

  • for(startdate in enddate) 这是要做什么?
  • startdate &lt;- startdate[-c(1441,1442),] 这是要做什么?

标签: r csv web-scraping


【解决方案1】:

基于您的目标“我希望从 URL 1 中抓取一个 CSV 文件,按日期递增到 URL 2,然后保存每个 CSV 文件。”这是一个示例代码:

startdate <- as.Date("2016-01-01")
enddate <- as.Date(Sys.Date())

geturl <- function(sdt, edt) {
    paste0("http://api.foo.com/charts/data?output=csv&data=close",
        "&startdate=",sdt,"&enddate=",edt,"&exchanges=bpi&dev=1")
} #geturl

dir.create("data")
garbage <- lapply(seq.Date(startdate, enddate, by="1 day"), function(dt) {
    dt <- as.Date(dt)
    dat <- read.csv(url(geturl(dt, dt)))
    write.csv(dat, paste0("data/dat-",format(dt, "%Y%m%d"),".csv"), row.names=FALSE)
})

这就是你要找的吗? 你能提供一个示例链接吗?以及一些示例日期?

【讨论】:

    猜你喜欢
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 2019-07-21
    • 2016-10-21
    • 2013-06-17
    • 2020-07-06
    相关资源
    最近更新 更多