我有以下代码来从需要身份验证的网站检索页面(它使用 Sungard 高等教育身份验证):
wget --delete-after --save-cookies cookies.txt --keep-session-cookies --post-data 'user=foo&password=bar&uuid=0x123' login.php
wget --load-cookies cookies.txt thepage.com
但问题是第二个不起作用。当我运行第一个时,它说我已成功登录,但第二个时需要登录。
我尝试通过添加从 Chrome 开发人员工具中提取的 HTTP 调用中获得的每个标头,将 POST/GET 调用与浏览器上的调用完全匹配--header
,但它仍然不起作用。
我认为问题在于身份验证不是基于 cookie 的,并且我在每个 wget 调用中打开一个新会话。我该如何防止这种情况发生(如果发生这种情况)?
我想我想做的是发送 HTTP 请求并基本上“导航”到该页面,我想象这是一个 wget 调用,但我真的不知道该怎么做。
答案1
使用该--input-file
开关并向其提供一个包含 URL 的文本文件应该允许您仅将一个 wget 调用/会话与您需要的所有其他开关一起使用。