2012-03-11 34 views
6

tôi muốn tải xuống tất cả hình ảnh từ this site nhưng sau khi tải xuống tất cả ảnh bị hỏng. Những gì tôi nên làm để tải chúng thành công?Tải xuống png/jpg với R

Mã của tôi:

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

Hoạt động tốt cho tôi trên Ubuntu 11.10. –

Trả lời

12

Vì vậy, có vẻ như bạn đang ở trong Windows. Khi bạn tải xuống tệp nhị phân, bạn phải chỉ định chế độ là nhị phân, ví dụ:

download.file(link, ..., mode = 'wb') 

xem ?download.file để biết chi tiết.

+0

Cảm ơn bạn, đó là những gì tôi muốn. – Maciej

1

tiên, hãy thử và tải về một. Thực hiện việc này:

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

Điều đó có hiệu quả không?

Tôi nhận thấy PNG của nó và không phải là JPEG, vì vậy có thể bạn đang cố đọc nó dưới dạng JPEG.

+0

Có, tất nhiên, tôi đã viết jpg insted của png, xin lỗi, nhưng vẫn còn một vấn đề với tải hình ảnh. Như tôi thấy, cũng có các tệp png và jpg ở đó. – Maciej

+0

Ví dụ: http://25.media.tumblr.com/tumblr_m0q1huFBbw1qk6uvyo1_500.jpg. – Maciej

+0

Tải xuống hình ảnh đó không sao, nhưng việc xem hình ảnh bằng trình xem hình ảnh cho tôi cảnh báo về loại Exif (TIFF) không xác định. Hình ảnh của chính nó (ba chàng trai một khẩu súng) xem tốt. Bản chất của 'tham nhũng' bạn đang gặp phải là gì? – Spacedman

Các vấn đề liên quan