我正在尝试下载这使用 发表的期刊文章cURL
。它是开放访问的主页,因此任何人查看/下载该文章都应该没有问题。然后我提取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 页面。
答案1
curl
似乎处理重定向的方式与wget
默认情况下不同。直接下载 URL 会涉及一些重定向,并且还需要在第一次重定向后正确设置 HTTP Referer 标头(否则,您将得到一个 HTML 页面)。
首先需要在curl
with中启用位置重定向-L
,然后curl
在 with 中启用referer header的自动处理--referer ";auto"
,即
curl -L --referer ";auto" -o test.pdf URL-for-direct-download