2012-03-11 51 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