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

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


当前回答

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

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

其他回答

无需软件或插件!

(仅在不需要递归deptch时可用)

使用书签。将此链接拖放到书签中,然后编辑并粘贴以下代码:

javascript:(function(){ var arr=[], l=document.links; var ext=prompt("select extension for download (all links containing that, will be downloaded.", ".mp3"); for(var i=0; i<l.length; i++) { if(l[i].href.indexOf(ext) !== false){ l[i].setAttribute("download",l[i].text); l[i].click(); } } })();

然后进入页面(从你想要下载文件的地方),然后点击那个书签。

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

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

解决方案:

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标志很重要,否则它将尝试下载所有内容。

Wget通常以这种方式工作,但有些网站可能会有问题,它可能会创建太多不必要的HTML文件。为了使这项工作更容易,并防止不必要的文件创建,我分享了我的getwebfolder脚本,这是我为自己写的第一个linux脚本。此脚本下载作为参数输入的web文件夹的所有内容。

当你试图通过wget下载一个包含多个文件的打开的web文件夹时,wget会下载一个名为index.html的文件。此文件包含web文件夹的文件列表。我的脚本转换文件名写在index.html文件的网址和下载他们清楚与wget。

在Ubuntu 18.04和Kali Linux上进行了测试,它也可以在其他发行版上运行。

用法:

从下面提供的zip文件中提取getwebfolder文件 Chmod +x getwebfolder(仅限第一次使用) 。/ getwebfolder webfolder_URL

例如。/getwebfolder http://example.com/example_folder/

下载链接

博客详情