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
出力されるファイルは、最初の Web ページの HTML のようです。ダウンロードしようとしているファイルの場所へのリンクが見つからないようです。解決策を見つけるために Google で徹底的に検索しましたが、明らかに正しいものを探していません。
答え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 に関するちょっとした「ロジック」を実装しなければ、必要なファイルを取得することはほぼ不可能です。Perl、Python などの HTTP/HTML 機能を備えたスクリプト言語を使用してこれを実装する方が、おそらくそれほど苦労しないでしょう。