我正在嘗試使用 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 等)來實現這一點可能會不那麼痛苦...