为什么方法='curl'在R中的download.file中不起作用?

问题描述 投票:0回答:1

我正在R中工作,我想从Web下载excel文件,并且正在使用download.file命令:

download.file(url = "http://www.jaredlander.com/data/ExcelExample.xlsx",
          destfile="data/ExcelExample.xlsx",method='curl')

但是当我尝试运行代码时,它显示错误为:

download.file(url =“ http://www.jaredlander.com/data/ExcelExample.xlsx”,+ destfile =“ data / ExcelExample.xlsx”,method ='curl')download.file(url =“ http://www.jaredlander.com/data/ExcelExample.xlsx”,:中的错误:“ curl”调用的退出状态为非零。

r curl
1个回答
0
投票

该链接通过http 301响应重定向到https地址,method = "curl"似乎不喜欢。 “内部”和“ wget”方法也不起作用。

我正在使用Windows,但似乎根本没有指定任何方法-根据手册,默认值为“ auto”,它可能为您选择了最合适的方法。在我的情况下,尽管method = "wininet"也起作用,但看起来与method = "libcurl"的结果相同。

[如果您使用的不是Windows,请尝试删除method="curl",它应该可以正常工作。否则,请尝试method = "libcurl"

即使我有一个有效的文件路径,您也可以看到我可以复制您的错误。

download.file(url = "http://www.jaredlander.com/data/ExcelExample.xlsx", 
              path.expand("~/jared.xlsx"), method = "curl")
# Error in download.file(url = "http://www.jaredlander.com/data/ExcelExample.xlsx",  : 
#   'curl' call had nonzero exit status

但是我可以通过完全删除“方法”来使其正常工作。

download.file(url = "http://www.jaredlander.com/data/ExcelExample.xlsx", 
              path.expand("~/jared.xlsx"))
# trying URL 'https://www.jaredlander.com/data/ExcelExample.xlsx'
# Content type 'application/vnd.openxmlformats' length 2045364 bytes (2.0 MB)
# downloaded 2.0 MB
© www.soinside.com 2019 - 2024. All rights reserved.