利用wget批量下载http目录下文件

时间:2021-12-01 12:49:03

原理:下载你需要down的目录页面的index.html,可能名字不是如此!!!
之后用wget下载该文件里包含的所有链接!

例如:wget -vE -rLnp -nH --tries=20 --timeout=40 --wait=5   http://mirrors.163.com/gentoo/distfiles/
或者简单点:wget -m http://mirrors.163.com/gentoo/distfiles/
你会得到distfiles页面的index.html文件,该文件内容当然不用说了,里面包含distfiles目录下的所有源码包的链接,要得到这个文件很容易,一个-m参数也可以,但该文件比较大,为防止超时,等待等问题,可以加tries,timeout,wait等参数解决。

wget -nc -B http://mirrors.163.com/gentoo/distfiles/ -F -nH --cut-dirs=3 -i index.html

Ok!!!

后来决定用tom的镜像来同步下载,但是发现tom竟然不允许浏览访问他们gentoo镜像页面当然也就得不到distfiles的 index.html,于是尝试用163得到的index.html代替,毕竟里面存放的都是相对路径,所以只需要用tom的distfiles目录代替 163的路径,同样可以从tom下载163的index.html里列出来的镜像文件!

参数解释:
-B 给指定的文件里的URLs增加路径前缀
-nc:下载时跳过已经存在的文件
-nH:不创建主机名目录
-i : 下载所有在i参数后面指定的文件中列出的URLs.
-v : 显示信息
E : 强制以html 保存
-r : 递归, 就是抓取子目录的子目录
L : 相对路径
np : 不跳到父目录

还很多乱七八遭的参数,比如制定目录啊,过滤啊,等等,自己研究把

ftp协议发布的文件的话就比较简单了,可以用 -r 参数 加通配符*来替代,完全可以实现递归下载!