使用wget
,在镜像具有多个具有不同凭据的密码保护区域的网站时,是否可以提供多个用户/密码对?
我想镜像具有多个保护区的整个网站。作为一个简化的示例,请考虑以下结构:
example.com/protected_area_1/ (user=alice, password=cat)
example.com/protected_area_2/ (user=bob, password=dog)
现在,在使用 时wget --mirror example.com
,您可以另外提供参数--user
和--password
,但如果仅提供一对用户/密码对,则由于 而无法下载两个受保护区域之一401 Authorization Required
。
有没有办法做类似的事情wget --user=alice --password=cat --user=bob --password=dog (...)
?用自然语言来说:当遇到受密码保护的区域时,请尝试通过依次尝试提供的所有凭据来获得访问权限。
答案1
如果需要这样做wget
:
如果用户名/密码组合的数量较少,并且下载量不大,则可以对每个组合重复运行整个树(使用
--user
和--password
)并合并结果。如果不同的用户/密码组合取决于域,您可以尝试
wget
的选项--ask-password
和expect
,并在正确的时间提供正确的选项。
对于更复杂的下载情况,我总是使用基于 selenium 的专用程序,该程序可以正确处理当前使用 javascript 加载部分页面的做法以及 wget 可以处理的基本身份验证之外的其他登录方案。