【问题标题】:R: Download file from internetR:从网上下载文件
【发布时间】:2015-08-22 02:56:33
【问题描述】:

我在从 Internet 下载 csv 文件时遇到问题。

我尝试了以下代码,但无法使其工作。

myurl <- "http://unstats.un.org/unsd/mdg/Handlers/ExportHandler.ashx?Type=Csv&Series=761"
download.file(myurl, destfile="./test.csv",method="curl")

相反,我收到了以下输出。

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0100 16313  100 16313    0     0  11961      0  0:00:01  0:00:01 --:--:-- 11959100 16313  100 16313    0     0  11960      0  0:00:01  0:00:01 --:--:-- 11959

当我手动下载时,会生成这样的文件“MDG_Export_20150821_224828123.csv”。 服务器生成一个新的文件名(MDG_Export + date + time)。

我是否可以从我的 R 程序中下载它,因为手动下载不是我的项目中的选项?

感谢您的帮助。

【问题讨论】:

  • 你试过用read.csv(url(myurl), ....)阅读它吗?你真的要保存它还是只在 R 中使用它?
  • 该文件是一个zip文件,所以你需要下载它,unzip然后读入R。文本文件底部也有一些噪音-fread来自data.table 的包非常适合做出有用的假设。这似乎工作download.file(myurl, temp &lt;- tempfile()) ; lst &lt;- unzip(temp, list=TRUE) ; dat &lt;- data.table::fread(unzip(temp, lst$Name), header=TRUE)。请参阅stackoverflow.com/questions/23899525/… 和其他链接
  • unz文件连接函数。
  • 非常感谢。这对我有用。正如你提到的,底部有噪音。我必须在保存文件之前将其删除。

标签: r


【解决方案1】:

试试这个:

myurl <- "http://unstats.un.org/unsd/mdg/Handlers/ExportHandler.ashx?Type=Csv&Series=761&filename=MDG_Export_20150821_224828123.zip"
myzip <- unz(myurl, filename='MDG_Export_20150821_224828123.zip')
download.file(myurl, destfile="./test.zip",method="curl")

然后您需要使用unzip 展开文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-30
    • 2010-11-06
    • 1970-01-01
    • 2021-12-19
    • 2020-06-22
    • 2013-11-30
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多