2012-03-11 54 views
6

我想从this site下载所有图片,但下载后照片全部损坏。我应该怎样做才能成功下载它们?用R下载png/jpg

我的代码:

library(XML) 
dir.create('c:/photos') 
urls<-paste("http://thedevilsguard.tumblr.com/page/",1:1870,sep="") 
doc<-htmlParse(urls[1]) 
links<-unique(unlist(xpathApply(doc,'//div[@class="timestamp"]/a',xmlGetAttr,'href'))) 
for (i in 1:length(links)){ 
    doc2<-htmlParse(links[i]) 
    link<-xpathApply(doc2,'//div[@class="centre photopage"]//p//img',xmlGetAttr,'src')[[1]][1] 
    download.file(link,paste("C:/photos/",basename(link),"")) 
} 
+0

在Ubuntu 11.10上可以正常工作。 – 2012-03-11 13:50:43

回答

12

所以它看起来你是在Windows下。当你下载二进制文件时,你必须指定模式为二进制,例如

​​3210

查看?download.file了解详情。

+0

谢谢,这就是我想要的。 – Maciej 2012-03-11 19:57:48

1

首先,请尝试下载一个。这样做:

link = "http://29.media.tumblr.com/tumblr_m0q2g8mhGK1qk6uvyo1_500.png" 
download.file(link,basename(link)) 

这是否行得通?

我注意到它是一个PNG,而不是一个JPEG,所以也许你试图以JPEG格式阅读它。

+0

是的,当然,我写了一个PNG的PNG,抱歉,但下载图像仍然存在问题。正如我所看到的,那里还有png和jpg文件。 – Maciej 2012-03-11 14:07:21

+0

例如:http://25.media.tumblr.com/tumblr_m0q1huFBbw1qk6uvyo1_500.jpg。 – Maciej 2012-03-11 14:09:43

+0

该图像下载可以,但使用图像查看器查看会给我一个关于未知Exif(TIFF)类型的警告。图像本身(三个人一枪)的看法很好。你有什么“腐败”的性质? – Spacedman 2012-03-11 14:41:51