Tengo un archivo XML que tiene enlaces a varios .jpg. Quiero crear un applescript que descargue una copia local de estos. La idea es también etiquetarlos secuencialmente con un número, por ejemplo, del 001 al 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: http://tweetriver.com/hud_ro/steer_filtered.xml?include_entities=1
¿Alguien puede ayudar?
Si una solución de script de shell 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>/\1/'); 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.
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
Entonces, vuela