从URL下载图片

3
我在使用 R 时,下载网站图片时遇到了问题。似乎图片已被 download.file 正确识别:

尝试下载 URL 'http://i.imgur.com/pszAeGh.png' 内容类型为 'image/png' 长度为 16592 字节 (16 Kb) URL 已打开 下载完成,大小为 16 Kb

图片以正确的名称和文件扩展名(.png)下载到了正确的目录中。

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

然而,文件已经损坏,无法打开。

我在这里做错了什么?


这解决了我的问题 :) 谢谢 - MineSweeper
2个回答

4

我没有找到重复的内容,所以我会直接回答。

download.file 的帮助文档在这方面有点零散,但如果你仔细阅读,你可以发现,在 Windows 上,默认的 mode = "w" 只适用于文本文件。对于二进制文件(几乎所有不是文本的文件),你需要 mode = "wb"。如果 URL 以以下任何一种方式结束:gz, .bz2, .xz, .tgz, .zip, .rda.RData,那么这将自动完成,否则你需要自己指定 mode = "wb"


3

您也可以切换到httr包:

library(httr)

GET("http://i.imgur.com/pszAeGh.png", 
    write_disk(paste("/tmp/", "Stackoverflow", ".png", sep="")))
write_disk 的优点是,它默认情况下不会覆盖(即您会获得隐式缓存),而且无需对二进制和文本进行特殊处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接