ダウンロードしようとしている 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ページとしてダウンロードされます。
curl
はデフォルトでwget
とは異なる方法でリダイレクトを処理するようです。直接ダウンロードURLにはいくつかのリダイレクトが含まれ、最初のリダイレクトの後にHTTPリファラーヘッダーを正しく設定する必要があります(そうでない場合、HTMLページが表示されます)。
まず、-L
を使用してcurl
で場所のリダイレクトを有効にし、次に--referer ";auto"
を使用してcurl
のリファラーヘッダーの自動処理を有効にする必要があります。
curl -L --referer ";auto" -o test.pdf URL-for-direct-download