Answers:
解:
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/
说明:
-r
:递归地 -np
:不上层目录,例如ccc /…-nH
:不将文件保存到主机名文件夹 --cut-dirs=3
:但是通过省略前三个文件夹aaa,bbb,ccc将其保存到ddd-R index.html
:排除index.html
文件参考:http : //bmwieczorek.wordpress.com/2008/10/01/wget-recursively-download-all-files-from-certain-directory-listed-by-apache/
When downloading from Internet servers, consider using the ‘-w’ option to introduce a delay between accesses to the server. The download will take a while longer, but the server administrator will not be alarmed by your rudeness.
robots.txt
禁止下载文件的文件,则此操作将无效。在这种情况下,您需要添加-e robots=off
。参见unix.stackexchange.com/a/252564/10312
--no-parent
做什么?
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/
从 man wget
'-r' '-- recursive '启用递归检索。有关更多详细信息,请参见递归下载。默认最大深度为5。
'-np''--no-parent' 递归检索时不要升至父目录。这是一个有用的选项,因为它可以确保仅下载特定层次结构下的文件。有关更多详细信息,请参见基于目录的限制。
'-nH''--no-host-directories' 禁用主机前缀目录的生成。默认情况下,使用-r http://fly.srk.fer.hr/调用Wget 将创建以fly.srk.fer.hr/开头的目录结构。此选项禁用这种行为。
'--cut-dirs = number' 忽略数字目录组件。这对于对将保存递归检索的目录进行精细控制很有用。
以目录“ 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
是宝贵的资源,也是我自己使用的东西。但是,有时地址中的某些字符会wget
识别为语法错误。我敢肯定有解决办法,但是由于这个问题并没有专门询问wget
我想为那些无疑会在本页上寻找不需要学习曲线的快速解决方案的人们提供替代方案。
有一些浏览器扩展程序可以做到这一点,但是大多数浏览器扩展程序都需要安装下载管理器,这些下载器并不总是免费的,容易使人眼花,乱,并占用大量资源。没有以下缺点的继承人:
“下载大师”是Google Chrome浏览器的扩展程序,非常适合从目录下载。您可以选择过滤要下载的文件类型,或下载整个目录。
https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce
有关最新功能列表和其他信息,请访问开发人员博客上的项目页面:
您可以使用此 Firefox插件来下载HTTP目录中的所有文件。
https://addons.mozilla.org/zh-CN/firefox/addon/http-directory-downloader/
(仅在不需要递归分解时可用)
使用书签。将此链接拖动到书签中,然后编辑并粘贴以下代码:
(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(); } } })();
并转到页面(从中下载文件),然后单击该书签。
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/
-R
像-R css
排除所有CSS文件-A
一样使用,也可以像-A pdf
仅下载PDF文件一样使用。