Scaricare dati con curl

Elaborazione dei dati in Shell

Susan Sun

Data Person

Cos'è curl?

curl:

  • sta per Client for URLs
  • è uno strumento da riga di comando Unix
  • trasferisce dati da e verso un server
  • si usa per scaricare dati da siti HTTP(S) e server FTP
Elaborazione dei dati in Shell

Verificare l'installazione di curl

Verifica installazione di curl:

man curl

Se curl NON è installato, vedrai:

curl command not found.

Istruzioni complete: https://curl.haxx.se/download.html.

Elaborazione dei dati in Shell

Sfogliare il manuale di curl

Se curl è installato, la console apparirà così:

Schermata dell'inizio del manuale di curl, come in un Terminale scuro

Elaborazione dei dati in Shell

Sfogliare il manuale di curl

Premi Enter per scorrere.

Schermata del manuale di curl parzialmente scrollato, come in un Terminale scuro

Premi q per uscire.

Elaborazione dei dati in Shell

Imparare la sintassi di curl

Sintassi base di curl:

curl [option flags] [URL]

L'URL è obbligatorio.

curl supporta anche HTTP, HTTPS, FTP e SFTP.

Per l'elenco completo delle opzioni:

curl --help
Elaborazione dei dati in Shell

Scaricare un singolo file

Esempio:

Un singolo file è disponibile su:

https://websitename.com/datafilename.txt

Usa l'opzione facoltativa -O per salvare il file col nome originale:

curl -O https://websitename.com/datafilename.txt

Per rinominare il file, usa -o minuscola + nuovo nome:

curl -o renameddatafilename.txt https://websitename.com/datafilename.txt
Elaborazione dei dati in Shell

Scaricare più file con caratteri jolly

Spesso un server ospita più file dati con nomi simili:

https://websitename.com/datafilename001.txt
https://websitename.com/datafilename002.txt
...
https://websitename.com/datafilename100.txt

Uso dei caratteri jolly (*)

Scarica ogni file su https://websitename.com/ che inizia con datafilename e finisce con .txt:

curl -O https://websitename.com/datafilename*.txt
Elaborazione dei dati in Shell

Scaricare più file con parser di globbing

Proseguendo con l'esempio:

https://websitename.com/datafilename001.txt
https://websitename.com/datafilename002.txt
...
https://websitename.com/datafilename100.txt

Uso del parser di globbing

Questo scarica in sequenza tutti i file da datafilename001.txt a datafilename100.txt.

curl -O https://websitename.com/datafilename[001-100].txt
Elaborazione dei dati in Shell

Scaricare più file con parser di globbing

Proseguendo con l'esempio:

https://websitename.com/datafilename001.txt
https://websitename.com/datafilename002.txt
...
https://websitename.com/datafilename100.txt

Uso del parser di globbing

Incrementa tra i file e scarica ogni N-esimo file (es. datafilename010.txt, datafilename020.txt, ... datafilename100.txt)

curl -O https://websitename.com/datafilename[001-100:10].txt
Elaborazione dei dati in Shell

Risoluzione preventiva dei problemi

curl ha due opzioni utili in caso di timeout durante il download:

  • -L Reindirizza l'URL HTTP se si verifica un errore 300.

  • -C Riprende un trasferimento interrotto prima del completamento.

Mettendo tutto insieme:

curl -L -O -C https://websitename.com/datafilename[001-100].txt
  • Tutte le opzioni vanno prima dell'URL
  • L'ordine non importa (es. -L -C -O va bene)
Elaborazione dei dati in Shell

Buon curl!

Elaborazione dei dati in Shell

Preparing Video For Download...