Baixando dados com curl

Processamento de Dados no Shell

Susan Sun

Data Person

O que é curl?

curl:

  • é abreviação de Client for URLs
  • é uma ferramenta de linha de comando Unix
  • transfere dados de e para um servidor
  • é usado para baixar dados de sites HTTP(S) e servidores FTP
Processamento de Dados no Shell

Verificando a instalação do curl

Verifique a instalação do curl:

man curl

Se o curl não estiver instalado, você verá:

curl command not found.

Para instruções completas, veja https://curl.haxx.se/download.html.

Processamento de Dados no Shell

Navegando no manual do curl

Se o curl estiver instalado, seu console ficará assim:

Captura de tela do início do manual do curl como se impresso em um Terminal escuro

Processamento de Dados no Shell

Navegando no manual do curl

Pressione Enter para rolar.

Captura de tela de um manual do curl parcialmente rolado como se impresso em um Terminal escuro

Pressione q para sair.

Processamento de Dados no Shell

Aprendendo a sintaxe do curl

Sintaxe básica do curl:

curl [option flags] [URL]

URL é obrigatória.

curl também tem suporte a HTTP, HTTPS, FTP e SFTP.

Para a lista completa de opções:

curl --help
Processamento de Dados no Shell

Baixando um único arquivo

Exemplo:

Um único arquivo está em:

https://websitename.com/datafilename.txt

Use a flag opcional -O para salvar com o nome original:

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

Para renomear, use -o em minúsculo + novo nome:

curl -o renameddatafilename.txt https://websitename.com/datafilename.txt
Processamento de Dados no Shell

Baixando vários arquivos com Globbing Parser

Continuando o exemplo anterior:

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

Usando Globbing Parser

O comando abaixo baixa todos os arquivos em sequência, de datafilename001.txt até datafilename100.txt.

curl -O https://websitename.com/datafilename[001-100].txt
Processamento de Dados no Shell

Baixando vários arquivos com Globbing Parser

Continuando o exemplo anterior:

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

Usando Globbing Parser

Incremente pelos arquivos e baixe a cada N arquivos (ex.: datafilename010.txt, datafilename020.txt, ... datafilename100.txt)

curl -O https://websitename.com/datafilename[001-100:10].txt
Processamento de Dados no Shell

Solução preventiva de problemas

O curl tem duas flags de opção úteis para timeouts durante o download:

  • -L Redireciona a URL HTTP se ocorrer um erro 300.

  • -C Retoma uma transferência interrompida por timeout antes de concluir.

Juntando tudo:

curl -L -O -C https://websitename.com/datafilename[001-100].txt
  • Todas as flags vêm antes da URL
  • A ordem das flags não importa (ex.: -L -C -O funciona)
Processamento de Dados no Shell

Bom curl!

Processamento de Dados no Shell

Preparing Video For Download...