使用 cURL 下载文件,但之前需要登录

使用 cURL 下载文件,但之前需要登录

我正在尝试使用 cURL 自动下载文件。但只有在登录后才能下载该文件。登录是一个非常标准的 POST 请求,我已经在浏览器网络分析中查看了它,现在它是如何构建的。现在我该如何使用 cURL 来实现这一点,以便我被识别为已登录并可以下载文件?因为显然在下载之前发送 POST 请求是行不通的。

答案1

您很可能需要存储 cookie。 @jsotola 的答案仅适用于基本身份验证,这越来越不常见了。你说这是一个 POST 请求。

查看-b-c选项。首先发出一个curl请求来登录并使用上述选项保存您的cookie。然后重复调用以下载文件,例如:

curl -b /tmp/cookies -c /tmp/cookies <url> ...

使用 cookie 的目的是存储身份验证令牌,如果没有它,您所做的每个调用都独立于之前的请求。当然,该网站可能涉及 Javascript/Ajax,而curl 并不总是能完成这项工作。

额外的好处:如果您尝试使用像 Firefox 这样的浏览器,Web 开发人员工具甚至可以为您生成 Curl 请求。

在此输入图像描述

答案2

尝试其中之一。

curl http://name:[email protected]/full/path/to/file
curl -u name:passwd http://machine.domain/full/path/to/file

相关内容