使用wget下载整个网站的问题

wget手册页中所述:

要下载单个页面及其所有必需品(即使它们存在于不同的网站上),并确保批次在本地正确显示,此作者除了-p之外还喜欢使用一些选项:

wget -E -H -k -K -p http://mysite.com/directory

我明白,如果我想完全下载mysite,我必须添加-r参数。 但是使用-r-H选项可以从http://mysite.com/directory下载所有可访问的网站。 任何的想法?

如果您想使用wget ,您可以使用镜像设置制作网站的离线副本,但某些网站可能会使用robots.txt设置阻止它停止自动抓取。 我一直遇到wget的一些问题(参见下面的其他建议),但以下命令适用于许多站点。 但是,请注意添加-H开关可以访问其他站点上的所有链接并保存这些链接。 如果不需要,显然可以删除此命令开关。

  wget --wait 1 -x -H -mk http://site.to.mirror/ 

wait命令允许wget's请求之间存在一些间隙,以便站点不会被淹没, -x命令开关指定站点的目录结构应该完全镜像到主文件夹中的文件夹中。 -m开关显然代表镜像模式,它允许wget以递归方式下载到站点; -k开关意味着在下载后,引用的文件将是您的主文件夹中镜像目录中的文件,而不是那些返回到站点本身的文件。

man wget ,或许最好的列表和wget命令的详细解释就在这里 。

如果wget不成功并且您无法获取所需数量,我应该尝试使用命令行程序httrack或其Web界面webhttrack ,它们可以在存储库中找到。 这个程序有很多选项,但是下载整个网站或部分网站比wget更好。 Webhttrack为您提供了一个下载站点的向导(它在您的浏览器中打开),如下面的屏幕截图所示。

的HTTrack

自从我为此目的使用wget以来已经有一段时间了:

我相信我在- m标志上取得了成功。

 wget -mk http://site.com/directory 

这可能不会得到一切 – 但它会让你接近。

(参考): 这个页面