Ich habe eine XML-Datei, die Links zu verschiedenen .jpg-Dateien enthält. Ich möchte ein Applescript erstellen, das eine lokale Kopie davon herunterlädt. Die Idee ist, sie auch nacheinander mit einer Nummer zu kennzeichnen, beispielsweise 001 bis 030.
Jedes Mal, wenn ich das Skript ausführe, möchte ich, dass die Bilder mit den neuen überschrieben werden.
Hier ist die XML-Datei, die ich verwenden muss: http://tweetriver.com/hud_ro/steer_filtered.xml?include_entities=1
Kann jemand helfen?
Wenn auch eine Shell-Skript-Lösung akzeptabel ist, versuchen Sie Folgendes
#!/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
Dies funktioniert natürlich nur für dieses spezifische XML-Beispiel und erfordert, dass alle Dateien im JPG-Format vorliegen.
Hier ist ein anderer Ansatz:
-- 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
also fliege