【问题标题】:Using R to download *.xls files generates error使用 R 下载 *.xls 文件会产生错误
【发布时间】:2015-05-24 16:23:49
【问题描述】:

我正在尝试从 BLS 服务器下载大量 xls 文件。 当我手动下载任何文件时,它们都可以完美打开。

但是当我尝试从 R 内部下载文件时:

library(readxl)

tp <- "http://www.bea.gov/histdata/Releases/GDP_and_PI/2014/Q4/Third_March-27-2015/Section1ALL_Hist.xls"
temp <- paste0(tempfile(), ".xls")
download.file(tp, destfile = temp, mode = "wb")

这会下载一个大小合适的文件,但会尝试读取该文件:

 data <- read_excel(path = temp, sheet = 1)

返回错误

seek: wanted to seek to sector 5374034 (0x520052) loc=2751505920

【问题讨论】:

  • 它真的在 excel 中打开吗?
  • temp &lt;- paste0(tempfile(), ".xls") 可能会起作用。
  • 当我手动下载文件时,是的,它会在 Excel 中打开。当我在 R 中下载文件时,它不会在 Excel 中打开或被 R 读取。
  • @plafort 感谢您的建议——我将其添加到问题中。仍然返回错误。

标签: r web-scraping rvest


【解决方案1】:

设置mode="wb"进行二进制传输:

download.file(tp, destfile=temp, mode="wb")

【讨论】:

  • 奇怪,这对我有用。我也可以使用download.file(tp, destfile=temp, method='curl')。你的操作系统是什么?
  • 天哪,我刚刚刷新了我的 R 会话,它起作用了。谢谢你推我!
猜你喜欢
  • 1970-01-01
  • 2018-10-07
  • 2020-04-12
  • 2019-08-08
  • 2012-09-04
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
  • 2013-07-21
相关资源
最近更新 更多