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 等)來實現這一點可能會不那麼痛苦...

相關內容