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 等)来实现这一点可能会不那么痛苦......

相关内容