可能重复:
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
,然后使用curl
或wget
以正确的格式(POST 或 GET)向action
包含登录变量和数据的表单 URL 发送请求。
该请求应返回包含会话密钥或类似内容的 cookie。提交该 cookie 以及任何未来的请求后,您便可以访问网站上需要您登录的页面。