web-dev-qa-db-ja.com

動的ダウンロードリンクを指定してcURLで記事をダウンロードする

ダウンロードしようとしている thiscURLを使用してジャーナルの記事を公開しています。オープンアクセスのメインページですので、誰でも閲覧・ダウンロードできて問題ありません。次に、変化し続けるpdfurlを抽出します。

次に、pdfをダウンロードしてみます。

curl -L -o test.pdf "http://www.sciencedirect.com/science/article/pii/S0378426612000817/pdfft?md5=6a85f34def09dd5cfb1d1b8feded0d51&pid=1-s2.0-S0378426612000817-main.pdf"

しかし、常にメインページにリダイレクトされ、メインページは「test.pdf」というHTMLページとしてダウンロードされます。

3
MERose

curlはデフォルトでwgetとは異なる方法でリダイレクトを処理するようです。直接ダウンロードURLにはいくつかのリダイレクトが含まれ、最初のリダイレクトの後にHTTPリファラーヘッダーを正しく設定する必要があります(そうでない場合、HTMLページが表示されます)。

まず、-Lを使用してcurlで場所のリダイレクトを有効にし、次に--referer ";auto"を使用してcurlのリファラーヘッダーの自動処理を有効にする必要があります。

curl -L --referer ";auto" -o test.pdf URL-for-direct-download
4
njsg
0
Aditya K