Comando Curl (principiantes de Linux)

Comando Curl (principiantes de Linux)

Estoy intentando utilizar el comando CURL para descargar el archivo zip más reciente (a partir de hoy es FuelWatchRetail-03-2020.csv.zip) deeste sitio.

El comando que tengo actualmente es el siguiente:

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

El archivo que se genera parece ser el html de la página web inicial. Parece que no puedo encontrar un enlace a la ubicación del archivo que estoy intentando descargar. He buscado mucho en Google para encontrar una solución, sin embargo, obviamente no estoy buscando lo correcto.

Respuesta1

Si intenta recuperar este archivo usando un navegador normal con la consola de desarrollador iniciada, notará que, cuando haga clic en el "enlace", se activará una solicitud HTTP POST parahttps://www.fuelwatch.wa.gov.au/fuelwatch/pages/public/historicalFileDownloadRetail.jspxcon los siguientes 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"
}

A cambio, se entrega como archivo adjunto el archivo solicitado:

{"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]
}

Por lo tanto, es bastante imposible recuperar el archivo que desea sin implementar un poco de "lógica" en torno a curl. Probablemente será menos doloroso implementar esto usando un lenguaje de secuencias de comandos con capacidades HTTP/HTML como Perl, Python, etc.

información relacionada