有一个我可以访问的在线HTTP目录。我尝试通过wget下载所有子目录和文件。但是,问题是,当wget下载子目录时,它会下载index.html文件,该文件包含该目录中的文件列表,而不会下载文件本身。
有没有一种方法可以下载没有深度限制的子目录和文件(就像我想要下载的目录只是一个文件夹,我想要复制到我的计算机)。
有一个我可以访问的在线HTTP目录。我尝试通过wget下载所有子目录和文件。但是,问题是,当wget下载子目录时,它会下载index.html文件,该文件包含该目录中的文件列表,而不会下载文件本身。
有没有一种方法可以下载没有深度限制的子目录和文件(就像我想要下载的目录只是一个文件夹,我想要复制到我的计算机)。
当前回答
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/
下载链接
博客详情
其他回答
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/
来自man wget
“- r” “——递归” 打开递归检索。有关详细信息,请参见递归下载。默认最大深度为5。
“np” ——没有父母的 在递归检索时,永远不要升到父目录。这是一个有用的选项,因为它保证只下载某个层次结构之下的文件。有关详细信息,请参见基于目录的限制。
“nh” “——no-host-directories” 禁用生成主机前缀目录。默认情况下,使用' -r http://fly.srk.fer.hr/ '调用Wget将创建一个以fly.srk.fer.hr/开头的目录结构。此选项禁用此类行为。
“——cut-dirs =数量” 忽略数字目录组件。这对于获得将保存递归检索的目录的细粒度控制非常有用。
以“ftp://ftp.xemacs.org/pub/xemacs/”目录为例。如果您使用' -r '检索它,它将保存在本地ftp.xemacs.org/pub/xemacs/下。虽然' -nH '选项可以删除ftp.xemacs.org/部分,但您仍然只能使用pub/xemacs。这就是'——cut-dirs '派上用场的地方;它使Wget不“看到”数字远程目录组件。下面是'——cut-dirs '选项如何工作的几个例子。
无选项-> ftp.xemacs.org/pub/xemacs/ - nh -> pub/xemacs/ - nh——cut-dirs=1 -> xemacs/ - nh——cut-dirs=2 ->。
——cut-dirs=1 -> ftp.xemacs.org/xemacs/ ... 如果你只是想摆脱目录结构,这个选项类似于' -nd '和' -P '的组合。然而,与' -nd '不同,'——cut-dirs '不会丢失子目录——例如,使用' -nH——cut-dirs=1 ', beta/子目录将被放置到xemacs/beta目录中,正如人们所期望的那样。
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/
下载链接
博客详情
您可以使用lftp,下载的swish军刀,如果您有更大的文件,您可以添加——use-pget-n=10命令
lftp -c 'mirror --parallel=100 https://example.com/files/ ;exit'
多亏了这篇使用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(); } } })();
然后进入页面(从你想要下载文件的地方),然后点击那个书签。