Команда Curl (для начинающих Linux)

Команда Curl (для начинающих Linux)

Я пытаюсь использовать команду CURL для загрузки последнего zip-файла (на сегодняшний день это FuelWatchRetail-03-2020.csv.zip) с сайтаэтот сайт.

На данный момент у меня следующая команда:

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

Файл, который выводится, похоже, является html с исходной веб-страницы. Я не могу найти ссылку на местоположение файла, который я пытаюсь загрузить. Я много гуглил, чтобы найти решение, однако я, очевидно, ищу не то, что нужно.

решение1

Если вы попытаетесь получить этот файл с помощью обычного браузера с запущенной консолью разработчика, вы заметите, что при нажатии на «ссылку» будет запущен HTTP-запрос POST кhttps://www.fuelwatch.wa.gov.au/fuelwatch/pages/public/historicalFileDownloadRetail.jspxсо следующими параметрами:

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

В ответ запрошенный файл передается в виде вложения:

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

Так что совершенно невозможно получить нужный файл без реализации некоторой "логики" вокруг curl. Вероятно, будет менее болезненно реализовать это с помощью скриптового языка с возможностями HTTP/HTML, такого как Perl, Python и т. д.

Связанный контент