![Curl 命令(Linux 初学者)](https://linux22.com/image/169091/Curl%20%E5%91%BD%E4%BB%A4%EF%BC%88Linux%20%E5%88%9D%E5%AD%A6%E8%80%85%EF%BC%89.png)
我正在尝试使用 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 等)来实现这一点可能会不那么痛苦......