如何通过 Wget 或 cURL 下载经过身份验证的文件

如何通过 Wget 或 cURL 下载经过身份验证的文件

可能重复:
wget 一个需要登录的页面

我希望从下载文件http://mbr.nlm.nih.gov/Download/MetaMapped_Medline/2011/。但是,为了下载文件,我需要输入密码和用户名,这些信息通过 HTTP 表单接受。

有没有办法我可以使用命令行输入密码/用户名?

答案1

您可以使用浏览器登录(最好选择“记住我”),导出浏览器 cookie(对于 Firefox 3.x,这里有一个 Python 代码可以做到这一点) 并使用 --load-cookies 与 wget。

答案2

wget并且curl只能处理基本的 HTTP 身份验证,而不能处理基于自定义表单的身份验证。

您需要做的是首先检查登录表单的 HTML,找到登录系统使用的表单元素和表单的action,然后使用curlwget以正确的格式(POST 或 GET)向action包含登录变量和数据的表单 URL 发送请求。

该请求应返回包含会话密钥或类似内容的 cookie。提交该 cookie 以及任何未来的请求后,您便可以访问网站上需要您登录的页面。

相关内容