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.