如何保存从一个链接到的所有网页


15

我想保存此网页及其链接到的所有页面。并希望在保存的网页之间具有相同的链接。

有什么方法可以代替打开和保存每个链接的页面吗?

Answers:


12

您可以使用wget命令行实用程序执行所需的操作。如果您为其提供-r选项,它将以递归方式下载网页。例如:

wget -r http://mat.gsia.cmu.edu/orclass/integer/integer.html

这将下载该网页及其链接的任何内容。您还可以使其仅递归一定数量的级别,为此,您只需提供-r一个数字即可。像这样:

wget -r 5 http://mat.gsia.cmu.edu/orclass/integer/integer.html

@Mark:谢谢!我现在尝试使用命令wget -r mat.gsia.cmu.edu/orclass下载mat.gsia.cmu.edu/orclass及其链接的页面。wget将在我指定的目录下创建一个目录mat.gsia.cmu.edu并下载其下的页面。但是下载的页面之间的链接路径中没有mat.gsia.cmu.edu,因此这成为问题,我无法通过单击链接从一个页面转到另一个页面。我想知道为什么以及如何解决这个问题?谢谢!
蒂姆(Tim)

我认为您不能递归下载外部链接@Tim。
Wuffers 2011年

“外部链接”是否意味着不在当前路径下的那些链接?
蒂姆(Tim)

@Tim:外部链接是指在mat.gsi.cmu.edu之外引用的链接
Wuffers 2011年

1
@Tim:哦,好。很抱歉对于这个误会。我认为您可以尝试自己编辑HTML文件以进行检查并使它们正常工作。
Wuffers 2011年

10

该线程现在已经很旧了,但是其他人可能会看一下它。谢谢Wuffers,他为我指明了正确的方向,但是,请您扩展一下Wuffers的答案:wget的现代版本提供了许多有用的选项,用于递归链接并将其修补为本地相对链接,以便您可以浏览本地副本网站。使用-r选项递归,使用-k选项修补本地链接,使用-H选项遍历除原始域之外的域,使用-D选项限制遍历的域,使用-l选项限制深度和-p选项,以确保遍历的叶子具有正确显示所需的所有内容。例如,以下代码将下载一个页面及其直接链接的所有内容,从而使其在本地可浏览,

wget -r -l 1 -p -k -H -D domain.com,relateddomain.com http://domain.com/page/in/domain

使用与上述命令类似的命令,我可以将包含外部链接的Wiki页面的一部分下载到我的本地磁盘上,而无需下载兆字节的无关数据。现在,当我在浏览器中打开根页面时,无需Internet连接即可导航树。唯一令人烦恼的是,根页面埋在了子目录中,为了方便显示,我不得不创建一个顶层重定向页面。要使其正确,可能需要反复试验。阅读wget手册页并进行实验。


4

您可以使用httrack这样的免费网站爬虫。

从网站;

[httrack]允许您将Internet上的万维网站点下载到本地目录,以递归方式构建所有目录,并将HTML,图像和其他文件从服务器下载到计算机。HTTrack安排原始站点的相对链接结构。只需在浏览器中打开“镜像”网站的页面,就可以从一个链接到另一个链接浏览该网站,就像您正在在线查看它一样。


1
+1出色的应用程序!但是,它也可以捕获所有链接的zip文件,这是我不想要的。但是,那么我应该应该先阅读说明!
finlaybob 2014年

是的,它可以/将跟随所有链接,因此将下载文件。(@Finlaybob,您知道个人资料中列出的首页已被黑客入侵吗?)
RJFalconer 2014年

我不是!我会仔细研究-感谢您告诉我!
finlaybob 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.