【问题标题】:How to download file from internet via R如何通过R从互联网下载文件
【发布时间】:2013-11-30 10:31:59
【问题描述】:

我有一个网址,我想通过R 下载文件,我注意到download.file 会有所帮助,但我的问题似乎不同:

url <- "http://journal.gucas.ac.cn/CN/article/downloadArticleFile.do?attachType=PDF&id=11771"
destfile <- "myfile.pdf"
download.file(url, destfile)

这行不通!我注意到如果我的urlxxx.pdf的形式,那么上面的代码是没有问题的,否则下载的文件是损坏的。

有谁知道如何解决这个问题?

【问题讨论】:

  • 请定义it doesn't work。我可以使用 download.file 下载文件并使用 PDF 阅读器打开它,因此我无法重现您的问题。我的第一个猜测是你在一个网络代理后面......
  • 我运行代码,可以得到文件“myfile.pdf”,但是当我点击文件“myfile.pdf”时,我无法打开它,所以我想也许我没有t 以正确的方式下载它。
  • 下载对我来说也很好,我可以打开 PDF。 PDF是中文的,但是,也许你只是缺少中文字体?

标签: r download


【解决方案1】:

可能需要设置模式以在保存文件时将文件视为二进制数据。如果我不考虑这个论点,我会得到一个空白文件,但这种方式对我有用:

url <- "http://journal.gucas.ac.cn/CN/article/downloadArticleFile.do?
attachType=PDF&id=11771"
destfile <- "myfile.pdf"
download.file(url, destfile, mode="wb")

【讨论】:

  • 您能指定您的操作系统和 R 版本吗? mode 参数仅在使用internal 方法时使用。默认方法是auto,所以我怀疑它可能取决于操作系统。我在FC18 64bit下使用R 3.0.2下载文件没有问题。
  • platform x86_64-w64-mingw32 arch x86_64 os mingw32 system x86_64, mingw32 status major 3 minor 0.2 year 2013 month 09 day 25 svn rev 63987
  • 我认为这可能与 ISP 传输 http 二进制流的方式有关,这可以解释为什么它适用于某些人而无需强制执行模式而不适用于其他人。
  • 我还需要添加 method='curl' 以免得到损坏的 pdf。 Windows 上的 RStudio 版本 0.98.1103 R 3.1.2。
  • 我正在使用所有这些方法,但它仍然没有为我创建一个可行的文件。尝试打开它失败。
猜你喜欢
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多