2012-03-11 20 views
6

me gustaría descargar todas las imágenes desde this site pero después de descargar todas las fotos están dañadas. ¿Qué debo hacer para descargarlos con éxito?Descargar png/jpg con R

Mi código:

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

Funciona bien para mí en Ubuntu 11.10. –

Respuesta

12

Parece que estás en Windows. Cuando descargue archivos binarios, debe especificar que el modo sea binario, p.

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

ver ?download.file para más detalles.

+0

Gracias, eso es lo que quería. – Maciej

1

En primer lugar, tratar de descargar uno. Haga esto:

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

¿Eso funciona?

Noto que es un archivo PNG y NO un JPEG, por lo que quizás intente leerlo en formato JPEG.

+0

Sí, por supuesto, escribí jpg insted of png, lo siento, pero todavía hay un problema con la descarga de imágenes. Como veo, también hay archivos png y jpg allí. – Maciej

+0

Por ejemplo: http://25.media.tumblr.com/tumblr_m0q1huFBbw1qk6uvyo1_500.jpg. – Maciej

+0

Esa imagen descarga bien, pero verla con un visor de imágenes me da una advertencia sobre un tipo Exif (TIFF) desconocido. La imagen en sí (tres tipos, una pistola) vistas bien. ¿Cuál es la naturaleza de la "corrupción" que está teniendo? – Spacedman