linux - Wget:如何保持 cookie 会话活动以进行递归或镜像下载(--keep-session-cookies 不起作用)
问题描述
我正在尝试使用 wget 下载网站,但在克隆第一个网页后它不会保持会话活动,该网站有登录名并使用 HTTPS,因此如果不是通过凭据,我将无法通过它导航。我设法使用 cURL 登录服务器并将其 PHPSESSIONID 保存到 cookie.txt 所以这个过程我正在做:
首先,我创建一个 cookie.txt
wget --save-cookies=cookie.txt
--keep-session-cookies "https://huellas.dashboardtimes.com/login.php?user=MyUserName&password=MyPass"
--delete-after
没有--post-data
给出它,因为网站使用 GET 方法进行身份验证(这成功登录但仅用于第一页)。
接着:
wget --load-cookies=cookie.txt -m https://Website.wget.com/home
此时, wget clone https://Website.wget.com/home在成功登录后返回代码 200 OK,但是当它完成 /home 并进入另一个模块时,例如https://Website.wget .com/contacts它失去了它的会话并将所有其他模块克隆为错误 - 404,返回代码为 302。我还尝试为该命令提供一个包含几个 URL 的列表
wget --load-cookies=cookie.txt -m -i list.txt
但我仍然得到相同的结果。选项中有什么-m
可能导致这种情况吗?因为如果我不指定-m
选项,它会下载列表中 URL 的 HTML 文件,没有错误 404,但我需要的不仅仅是 HTML,这就是我使用-m
选项的原因。
有解决方法还是我错过了什么?
(如果有任何其他工具,如 wget 可以用于此,我也想知道)。
感谢您的回答。