Usando cURL per scaricare immagini nel feed XML?

2

Ho un file XML che ha collegamenti a vari .jpg Voglio creare un applescript che scarica una copia locale di questi. L'idea è di etichettarli anche in sequenza con un numero che va da 001 a 030.

Ogni volta che eseguo lo script voglio che le immagini vengano sovrascritte con quelle nuove.

Ecco il file XML che devo usare: link

Qualcuno può aiutarti?

    
posta super_squirrel 04.02.2013 - 15:26
fonte

2 risposte

1

Se una soluzione di script di shell è accettabile, prova il seguente

#!/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

Questo ovviamente funziona solo per questo specifico esempio XML e richiede che tutti i file siano in formato jpg.

    
risposta data 04.02.2013 - 16:05
fonte
0

Ecco un altro approccio:

-- 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
    
risposta data 04.02.2013 - 19:15
fonte

Leggi altre domande sui tag