wget - 下载子目录

51

我如何使用wget下载一个子目录? 我能指定需要下载的子目录吗?

谢谢!

3个回答

86

您可以执行以下操作:

wget -r -l1 --no-parent http://www.domain.com/subdirectory/

其中:

-r: recursive retrieving
-l1: sets the maximum recursion depth to be 1
--no-parent: does not ascend to the parent; only downloads from the specified subdirectory and downwards hierarchy

8
感谢您对命令参数进行详细说明。我遇到了类似的问题,只需要使用“-r”和“--no-parent”命令。 - Sofox
4
如果您希望确保每个页面都能正确加载(即:下载页面上加载的图像),您可以在上述命令中添加 -p 标志。 - earthmeLon
3
同时,添加“-nd”选项可以直接将文件保存在当前目录而无需在/path/to/the/subdirectory下创建子目录。 - HenriV
1
-nH --cut-dirs <前置目录数> 可以不下载整个路径树。 - Urchin

20
$ wget -m -p -E -k -K -np {URL Address}

您可以使用手册了解选项的详细信息。

注意:使用先前的选项,将下载文件的索引!

  • -m:适用于镜像的选项,例如无限递归和时间戳
  • -p:页面必需品
  • -E:调整扩展名
  • -k:将链接转换为本地查看
  • -K:备份原始文件,不要覆盖
  • -np:无父级

2
疯狂。正是我在寻找的东西。这应该是被接受的答案。 - John Smith
1
这个解决方案在我的情况下失败了(GNU Wget 1.13.4在linux-gnu上构建)。它实际上会下载父目录中的文件,而不是期望的结果。 - Tzunghsing David Wong
1
在我的情况下,它也失败了。看起来我的wget(GNU Wget 1.14)忽略了--no-parent选项。在openSUSE leap 42.1.20160217中。 - boczniak767
4
-m:适用于镜像的选项,如无限递归和时间戳。-p:页面必备资源。-E:调整扩展名。-k:将链接转换为本地查看。-K:备份原始文件,不覆盖。-np:不获取上层父目录。 - thadk

4

这是一个有用的信息。我尝试了:

wget -r -l1 --no-parent http://www.domain.com/subdirectory/

针对包含形如name.subname.subname2.etc.htm或.html多个文件的站点,为了捕获这些文件,我运行了以下命令:

wget -r --no-parent http://www.domain.com/subdirectory/

这样做很有效。


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