如何在使用wget镜像网站时跳过选定的URL

3

我有如下问题。我需要镜像密码保护的网站。听起来是一个简单的任务:

wget -m -k -K -E --cookies=on --keep-session-cookies --load-cookies=myCookies.txt http://mysite.com

在myCookies.txt文件中,我正保存着正确的会话cookie。这有效,直到wget访问注销页面为止-然后会话被作废,进一步的镜像就毫无意义。
我们尝试添加“--reject”选项,但它仅适用于文件类型-我只能阻止html文件下载或swf文件下载,我无法指定哪些文件可下载。
--reject http://mysite.com/*.php?type=Logout*

有什么办法可以在wget中跳过某些URL?也许有其他工具可以完成这项工作(必须在MS Windows上运行)。
2个回答

4
如果您首先下载(甚至只是触摸)注销页面,那么会发生什么呢?
wget --no-clobber --your-original-arguments

这应该跳过注销页面,因为它已经被下载过了。(免责声明:我自己没有尝试过这个方法)

1
+1;我执行了 touch page.php?type=Logout 然后执行了 wget --no-clobber http://tkos.co.il/page.php?type=Logout,结果显示 File 'page.php?type=Logout' already there; not retrieving. - Eli Rosencruft
使用HTTrack实现相同的功能非常容易:httrack.exe http://mysite.com --mirror --cookies=1 -Logout,假设cookies存储在cookies.txt文件中。 - Piotr Kochański

3

我也遇到过这个问题,后来像这样解决它:“--reject-regex logout”,更多信息请查看:wget-devTips


这样做是否仍会向注销页面发出HTTP请求,从而使cookie过期?编辑:啊,它可以工作。我只使用了--reject(而不是--reject-regex)。只有--reject似乎不起作用(它仍然会发出HTTP请求),但--reject-regex可以起作用。 - laggingreflex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接