R从URL下载图片

时间:2015-12-23 18:31:51

标签: r download

从使用R网站下载图片时遇到问题 好像download.file

正确识别了图像

尝试网址“http://i.imgur.com/pszAeGh.png” 内容类型'image / png'长度16592字节(16 Kb) 打开网址 下载了16 Kb

它也会以正确的名称和文件结尾(.png)下载到正确的目录中。

download.file("http://i.imgur.com/pszAeGh.png",paste(**yourDEST**,"Stackoverflow",".png",sep=""))

但是,该文件被屠宰,无法打开。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

我找不到重复,所以我只是回答。

download.file帮助有点碎片,但如果仔细阅读,您会发现,在Windows上,默认mode = "w"仅适用于文本文件。对于二进制文件(除了文本之外的所有内容),您需要mode = "wb"。这将自动完成如果网址以gz, .bz2, .xz, .tgz, .zip, .rda.RData中的任何一个结尾,但是您需要自己指定mode = "wb"

答案 1 :(得分:3)

您也可以切换到httr包:

library(httr)

GET("http://i.imgur.com/pszAeGh.png", 
    write_disk(paste("/tmp/", "Stackoverflow", ".png", sep="")))

write_disk的加号是它默认不会覆盖(即你得到隐式缓存),并且对二进制文本和文本都不需要特殊处理。