有一个我可以访问的在线HTTP目录。我尝试通过wget下载所有子目录和文件。但是,问题是,当wget下载子目录时,它会下载index.html文件,该文件包含该目录中的文件列表,而不会下载文件本身。

有没有一种方法可以下载没有深度限制的子目录和文件(就像我想要下载的目录只是一个文件夹,我想要复制到我的计算机)。


当前回答

解决方案:

wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

解释:

它将下载ddd目录下的所有文件和子文件夹 -r:递归 -np:不去上层目录,比如ccc/… -nH:不保存文件到主机名文件夹 ——cut-dirs=3:但通过省略将其保存到DDD 前三个文件夹aaa, bbb, CCC -R index.html:不包括index.html 文件

参考:http://bmwieczorek.wordpress.com/2008/10/01/wget-recursively-download-all-files-from-certain-directory-listed-by-apache/

其他回答

您可以使用这个Firefox插件下载HTTP目录中的所有文件。

https://addons.mozilla.org/en-US/firefox/addon/http-directory-downloader/

wget是一个无价的资源,我自己也在使用。然而,有时地址中的某些字符会被wget识别为语法错误。我确信有一个解决方案,但由于这个问题没有特别询问wget,我想我可以为那些毫无疑问会偶然发现这个页面的人提供一个替代方案,寻找一个不需要学习曲线的快速解决方案。

有一些浏览器扩展可以做到这一点,但大多数都需要安装下载管理器,这并不总是免费的,往往是一个眼中钉,并使用大量的资源。这里有一个没有这些缺点:

“下载大师”是谷歌Chrome浏览器的扩展,适用于从目录下载。您可以选择过滤要下载的文件类型,或者下载整个目录。

https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce

有关最新的功能列表和其他信息,请访问开发人员博客上的项目页面:

http://monadownloadmaster.blogspot.com/

解决方案:

wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

解释:

它将下载ddd目录下的所有文件和子文件夹 -r:递归 -np:不去上层目录,比如ccc/… -nH:不保存文件到主机名文件夹 ——cut-dirs=3:但通过省略将其保存到DDD 前三个文件夹aaa, bbb, CCC -R index.html:不包括index.html 文件

参考:http://bmwieczorek.wordpress.com/2008/10/01/wget-recursively-download-all-files-from-certain-directory-listed-by-apache/

多亏了这篇使用VisualWGet的文章,我才能让它工作。这对我来说很有效。重要的部分似乎是检查-recursive标志(见图)。

还发现-no-parent标志很重要,否则它将尝试下载所有内容。

您可以使用lftp,下载的swish军刀,如果您有更大的文件,您可以添加——use-pget-n=10命令

lftp -c 'mirror --parallel=100 https://example.com/files/ ;exit'