Automator: salva le immagini da un elenco di URL in un file di testo

1

Ho un file di testo con un elenco di URL di immagini da un sito web. Vorrei scaricarli in una cartella denominata Art sul mio computer.

Ho provato Ottieni contenuti di TextEdit Document e poi Estrai URL dal testo , ma poi non capisco come analizzare ogni URL e salvare l'immagine prima di spostarmi al prossimo URL.

Come posso scaricare in batch diverse immagini dai loro URL?

    
posta Linda 12.11.2018 - 18:32
fonte

2 risposte

2

Supponiamo per un secondo che gli URL dell'immagine siano in un file di testo che si trova sul desktop ... "Image list.txt"

Supponiamo che ogni URL dell'immagine in quel file si trovi su una linea separata

Supponiamo che la cartella "Art" si trovi sul desktop (cartella per le immagini scaricate)

QuestocodiceAppleScriptètuttociòcheserve

settheListto(pathtodesktopastext)&"Image list.txt"
set artFolder to (path to desktop as text) & "Art"
set artFolder to quoted form of POSIX path of artFolder

set theImages to read alias theList as list using delimiter linefeed -- get the lines of a file as a list

repeat with i from 1 to count of theImages
    set thisItem to item i of theImages
    do shell script "cd " & artFolder & "; " & "curl -O " & quoted form of thisItem
end repeat

In realtà, ecco una soluzione ancora migliore. Salva il seguente codice AppleScript in Script Editor.app come applicazione. Ora avrai due opzioni.

Facendo doppio clic sull'app in Finder si aprirà una finestra di dialogo che chiede di scegliere il file di testo contenente gli URL dell'immagine, quindi si procederà a scaricare le immagini.

o

Puoi trascinare il file di testo che contiene gli URL dell'immagine direttamente sull'icona della app, in Finder, che procederà quindi a elaborare e scaricare le immagini in quel file di testo. (AKA Droplet)

on open theFiles
    --  Handle the case where the script is launched by dropping
    -- a .txt file, containing image URLs,  directly onto this app's icon
    set artFolder to (path to desktop as text) & "Art"
    set artFolder to quoted form of POSIX path of artFolder

    set theImages to read alias theFiles as list using delimiter linefeed

    repeat with i from 1 to count of theImages
        set thisItem to item i of theImages
        do shell script "cd " & artFolder & "; " & "curl -O " & quoted form of thisItem
    end repeat
end open

on run
    --  Handle the case where the script is launched without any dropped files
    set theList to (choose file with prompt ¬
        "Choose Your Text File Containing Image URLs" of type {"txt"} ¬
        default location (path to desktop) ¬
        invisibles false ¬
        without multiple selections allowed) as text

    set artFolder to (path to desktop as text) & "Art"
    set artFolder to quoted form of POSIX path of artFolder

    set theImages to read alias theList as list using delimiter linefeed

    repeat with i from 1 to count of theImages
        set thisItem to item i of theImages
        do shell script "cd " & artFolder & "; " & "curl -O " & quoted form of thisItem
    end repeat
end run

Ecco un'immagine della goccia in azione ...

    
risposta data 15.11.2018 - 00:57
fonte
-1

Suppongo che tu disponga di un file di testo con un URL per riga. Questo è importante per il seguente flusso di lavoro. Suppongo anche che tu abbia puro URL jpg / png, che collega direttamente alle immagini e non alle pagine URL di html con immagini all'interno.

Mi occuperò di Safari perché è probabile che il browser sia installato nel tuo sistema, ma altri browser dovrebbero funzionare allo stesso modo.

1 - Apri Safari e vai alle preferenze, generale, e imposta la Posizione download file predefinita nella tua cartella ART :

2-ApriAutomator,creaunnuovoflussodilavoroetrascinaun'azioneEseguiAppleScript:

3-Incollailseguentecodice:

onrunsettheclipboardto{}tellapplication"TextEdit" to activate
    tell application "System Events"
        key code 126 using command down -- go to the start of the doc (command+up)
        delay 0.1
        key code 124 using {command down, shift down} -- select the first line (commmand+shift+right arrow)
        delay 0.1
        key code 8 using command down -- copy URL (command+C)
        delay 0.1
    end tell
    repeat while (the clipboard) is not "EXIT"
        tell application "Safari" to activate
        tell application "System Events"
            key code 37 using command down -- Open Location (Command+L)
            delay 0.1
            key code 9 using command down -- paste URL (Command+V)
            delay 0.1
            key code 36 -- enter
            delay 3 -- three seconds to begin loading the image, adjust if necessary
            key code 1 using command down -- Save (command+S)
            delay 0.1
            key code 36 -- enter
            repeat while exists window "Save" of application process "Safari"
                delay 0.5 -- wait the save to end
            end repeat
        end tell
        tell application "TextEdit" to activate -- back to textEdit
        tell application "System Events"
            key code 125 -- go to next line
            delay 0.1
            key code 123 using command down -- go to the start of the line (command + left key)
            delay 0.1
            key code 124 using {command down, shift down} -- select the line (commmand+shift+right arrow)
            delay 0.1
            key code 8 using command down -- copy URL (Command+C)
            delay 0.1
        end tell
    end repeat
end run

4-Posizionaun"EXIT" nell'ultima riga del documento, in modo che il programma ora quando il lavoro è finito:

5 - Esegui il flusso di lavoro

Ho provato e funziona perfettamente.

    
risposta data 14.11.2018 - 01:00
fonte

Leggi altre domande sui tag