0 votos

¿Cómo descargar imágenes de un feed xml utilizando el terminal?

¿Cómo puedo descargar imágenes png de un feed xml con el siguiente aspecto?

<ListBucketResult xmlns="http://url1.com">
  <Name>imagesToUse</Name>
<Prefix/>
<Marker/>
<IsTruncated>false</IsTruncated>
<Contents>
  <ImageStuff>imagetodownload.png</ImageStuff>
  <Size>17293</Size>
</Contents>

Estaba echando un vistazo a esta pregunta aquí sobre el mismo tema, excepto que no necesito renombrarlos, sólo descargarlos.

Siendo nuevo en los shell scripts, no estoy muy seguro de cómo hacer esto (aunque definitivamente puedo hacerlo en 2 minutos en objective-c).

He probado a crear el siguiente script y ejecutar bash myscript.sh

#!/bin/bash
URL='https://theurlwiththexml.com'
i=0
for u in $(curl -s "$URL" |
           grep png | 
           sed -E 's/.*<ImageStuff>(.+)<\/ImageStuff>/\1/'); do
    curl -s "$u" -o $i.png
    (( i++ ))
done

Pero no pasa nada. Sólo imprime otra línea sin errores.

1voto

Después de curl http://theurlwiththexml.com :

sed -n 's,.*<ImageStuff>\(.*\.png\)<.*,\1,p'|xargs -I, curl http://url1.com/, -o ,

sed -n desactiva la impresión, \( y \) son una forma portátil de especificar grupos, y p imprime el espacio del patrón. xargs -I especifica una cadena de sustitución y curl -o especifica un archivo de salida.

O utilizando xmlstarlet , parallel y wget :

xml sel -t -v //ImageStuff|parallel wget http://url1.com/{}

sel es la abreviatura de select , -t -v utiliza la plantilla de valores, y //ImageStuff es una expresión XPath que coincide con todos los ImageStuff nodos.

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