¿Usar cURL para descargar imágenes en la fuente XML?

2

Tengo un archivo XML que tiene enlaces a varios .jpg Quiero crear un applecript que descargue una copia local de estos. La idea es etiquetarlos también de forma secuencial con un número, por ejemplo, 001 a 030.

Cada vez que ejecuto el script, quiero que las imágenes se sobrescriban con las nuevas.

Aquí está el archivo XML que necesito usar: enlace

¿Alguien puede ayudar?

    
pregunta super_squirrel 04.02.2013 - 15:26

2 respuestas

1

Si una solución de shell script también es aceptable, intente lo siguiente

#!/bin/bash
URL='http://tweetriver.com/hud_ro/steer_filtered.xml?include_entities=1'
i=0
for u in $(curl -s "$URL" |
           grep jpg | 
           sed -E 's/.*<profile_image_url>(.+)<\/profile_image_url>//'); do
    curl -s "$u" -o $i.jpg
    (( i++ ))
done

Por supuesto, esto solo funciona para este ejemplo XML específico y requiere que todos los archivos estén en formato jpg.

    
respondido por el nohillside 04.02.2013 - 16:05
0

Aquí hay otro enfoque:

-- Notice last "/" on path below
set downloadFolder to "/Users/squirrel/Desktop/testFolder/"

set myImages to every paragraph of (do shell script "curl http://tweetriver.com/hud_ro/steer_filtered.xml?include_entities=1 | grep -o \>.*jpg | sed 's/\>//'")

repeat with i from 1 to count of myImages
    set fileName to do shell script "echo " & quoted form of (item i of myImages) & " | grep -o [^/]*$ | sed 's/\.jpg/-" & addOs(i, 3) & ".jpg/'"
    do shell script "curl " & quoted form of (item i of myImages) & " -o " & quoted form of (downloadFolder & fileName as text)
end repeat

on addOs(myNumber, desiredDigits)
    set myNumber to myNumber as text
    set moreOs to desiredDigits - (myNumber's length)
    repeat moreOs times
        set myNumber to "0" & myNumber
    end repeat
    return myNumber
end addOs
    
respondido por el adayzdone 04.02.2013 - 19:15

Lea otras preguntas en las etiquetas