首页 > 解决方案 > 从多个 html 下载多个 CSV

问题描述

我正在尝试从该网站下载多个 CSV:https ://promo.betfair.com/betfairsp/prices (加载需要一段时间)

我只想要以 dwbfpricesauswin 开头的文件,并希望将它们从 010119 到当前日期一一下载,并将它们保存在我的下载文件夹中。

mydownload <- function (start_date,end_date) {
  start_date <- as.Date(start_date)  ## convert to Date object
  end_date <- as.Date(end_date)  ## convert to Date object
  dates <- as.Date("1970/01/01") + (start_date:end_date)  ## date sequence
  ## a loop to download data
  for (i in 1:length(dates)) {
    string_date <- as.character(dates[i])
    myfile <- paste0("C:\\Users\\andrewc\\Downloads",string_date,".csv")
    string_date <- gsub("-","",string_date)  ## replace "-" with ""
    myurl <- paste("https://promo.betfair.com/betfairsp/prices/dwbfpricesauswin",string_date,".csv")
    download.file(url=myurl,destfile=myfile,quiet=TRUE)
  }
}

mydownload("2019/01/01","2019/08/28")

我是 R 新手,所以我的问题是我不确定如何以正确格式获取 url (010119) 的日期,并且我在 url 中得到空格,这给了我一个错误。

任何帮助将不胜感激。

标签: r

解决方案


您可以生成您想要使用的日期范围:

s <- seq(as.Date("2019/01/01"), by="day", length.out=365)
date <- format(s, "%m%d%y")

例如,这将生成从 2019 年 1 月 1 日到 2019 年 12 月 31 日的日期序列,格式010119为 。

对您当前脚本的另一项更正是:

myurl <- paste0("https://promo.betfair.com/betfairsp/prices/dwbfpricesauswin", string_date, ".csv")

默认情况下,该paste()函数将使用空格作为分隔符将参数连接在一起。在这种情况下,您不希望 URL 中有这些空格,因此请paste0()改用。


推荐阅读