2 votos

El uso de cURL para descargar imágenes en el feed XML?

Tengo un archivo XML que tiene enlaces a varios .jpg quiero crear un applescript que descarga una copia local de estos. La idea es también la etiqueta de manera secuencial con un número dice 001 a 030.

Cada vez que ejecute la secuencia de comandos quiero las fotos que se sobrescribe con los nuevos.

Aquí está el archivo XML que tengo que usar: http://tweetriver.com/hud_ro/steer_filtered.xml?include_entities=1

Alguien puede ayudar?

1voto

Si una secuencia de comandos de shell solución es aceptable, así, tratar el 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 sólo funciona para este ejemplo de XML y requiere que todos los archivos estén en formato jpg.

0voto

adayzdone Puntos 1258

Aquí es 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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X