Comando Curl (Linux para iniciantes)

Comando Curl (Linux para iniciantes)

Estou tentando usar o comando CURL para baixar o arquivo zip mais recente (atualmente é FuelWatchRetail-03-2020.csv.zip) deesse site.

O comando que tenho atualmente é o seguinte:

curl https://www.fuelwatch.wa.gov.au/fuelwatch/pages/public/historicalFileDownloadRetail.jspx#/FuelWatchRetail-03-2020.csv.zip -o new.zip

O arquivo gerado parece ser o html da página inicial. Não consigo encontrar um link para o local do arquivo que estou tentando baixar. Pesquisei bastante no Google para encontrar uma solução, mas obviamente não estou procurando a coisa correta.

Responder1

Se você tentar recuperar este arquivo usando um navegador normal com o console do desenvolvedor iniciado, você notará que, ao clicar no "link", ele acionará uma solicitação HTTP POST parahttps://www.fuelwatch.wa.gov.au/fuelwatch/pages/public/historicalFileDownloadRetail.jspxcom os seguintes parâmetros:

{
   "j_idt72":"j_idt72",
   "j_idt72:resultsTbl_rppDD":"20",
   "javax.faces.ViewState":"-4860850130551349268:6438609436745021067",
   "j_idt72:resultsTbl:0:j_idt75":"j_idt72:resultsTbl:0:j_idt75"
}

Em troca, o arquivo solicitado é fornecido como anexo:

{"headers":
   [
       {
          "name":"Content-Disposition",
          "value":"attachment;filename=\"FuelWatchRetail-03-2020.csv.zip\"; filename*=UTF-8''FuelWatchRetail-03-2020.csv.zip"
       },
       {
          "name":"Content-Type","value":"application/pdf"},
       [remaining data are useless for this explanation]
}

Portanto, é impossível recuperar o arquivo desejado sem implementar um pouco de "lógica" em torno do curl. Provavelmente será menos doloroso implementar isso usando uma linguagem de script com habilidades HTTP/HTML, como Perl, Python, etc.

informação relacionada