cURLを使用して自動的にファイルをダウンロードしようとしています。ただし、ログイン後にのみファイルをダウンロードできます。ログインは非常に標準的なPOSTリクエストです。ブラウザのネットワーク分析を見て、構造がどのようになるかを見ました。 cURLを使用してログインしたと認識され、ファイルをダウンロードできるようにするにはどうすればよいですか?明らかに、ダウンロードする前にPOSTリクエストを送信するのはうまくいかないからです。
答え1
クッキーを保存する必要があります。 @jsotolaの回答は次のようにのみ適用されます。基本認証、これはますます一般的になっていません。 POSTリクエストと言われました。
ビュー-b
と-c
オプション。まず、上記のオプションを使用してログインし、Cookieを保存するためのカールリクエストを作成します。その後、呼び出しを繰り返してファイルをダウンロードします。例:
curl -b /tmp/cookies -c /tmp/cookies <url> ...
クッキーを使用する目的は、認証トークンを保存することです。これを使用しない場合、各呼び出しは前の要求とは無関係です。もちろん、サイトにJavascript / Ajaxが含まれる可能性があり、カールが常に作業を完了するわけではありません。
ボーナス:Firefoxなどのブラウザを使用したい場合は、Web開発者ツールがCurlリクエストを生成することもできます。
答え2
次のいずれかを試してください。
curl http://name:[email protected]/full/path/to/file
curl -u name:passwd http://machine.domain/full/path/to/file