使用WGET下载网站的某个特定路径下的全部数据
有时候在浏览网页的时候,你会遇到无法全部下载某个路径下的所有内容的问题,如下:
http://www.fosss.org/Book/

这种情况,如果使用迅雷下载,可能就无法保留原站点的目录结构信息。
对于这种情况,我们可以使用Linux环境下的WGET命令执行下载。
具体如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[root@elk download]# wget -c -r -npH -k -L --span-hosts www.fosss.org/Book/ (过多的输出,... ) Converting Book/eDiZang/05.html... 32-1 Converting Book/BaiLianHuaLun/blhl092.html... 2-3 Converting Book/LuoSiWeiEr/index.html... 30-5 Converting Book/JueWuZhiLu/jwzl00.html... 2-3 Converting Book/AJiangCha/Ding/03.html... 14-3 Converting Book/ZhiHuiDeNL/zh31.html... 2-3 Converting Book/BaiFaMingMenLun/100fa.html... 8-3 Converting Book/BaiYeJing/byj095.html... 2-3 Converting Book/DaShi/8-1.html... 2-4 Converting Book/JieLu/16.html... 1-0 Converting Book/BaiYeJing/byj021.html... 2-3 Converting Book/DaShi/2-5.html... 2-2 Converting Book/RuPuSaXing/SiKouTi/Index.html... 11-3 Converting Book/DaShi/index.html... 101-2 Converting Book/BaiLianHuaLun/blhl040.html... 2-3 Converting Book/WaterKnow/4.html... 6-2 Converting Book/BaiLianHuaLun/blhl056.html... 4-3 Converting Book/JueWuZhiLu/jwzl22.html... 2-3 Converting Book/Ami/Index.html... 9-3 Converting Book/ZhiZheMiaoYin/Photo/GenRang/style.css... 1-0 Converted 931 files in 0.5 seconds. [root@elk download]# |
下载完成后,看看状态:
1 2 3 4 5 6 7 |
[root@elk download]# ls -ltr total 4 drwxr-xr-x 48 root root 4096 Aug 29 00:32 Book [root@elk download]# [root@elk download]# du -sh * 272M Book [root@elk download]# |
为了便于从Linux环境中导出来,压缩一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[root@elk software]# pwd /software [root@elk software]# [root@elk software]# ls -ltr download total 4 drwxr-xr-x 48 root root 4096 Aug 29 00:32 Book [root@elk software]# [root@elk software]# tar -cvf download.tar download/ (过多的输出,... ) download/Book/eDiZang/07.html download/Book/eDiZang/back.html download/Book/eDiZang/06.html download/Book/eDiZang/xu.html download/Book/eDiZang/05.html download/Book/index.html?C=M;O=A download/Book/index.html?C=M;O=D download/Book/index.html?C=S;O=A download/Book/index.html?C=S;O=D download/Book/index.html?C=D;O=A download/Book/index.html?C=D;O=D download/Book/index.html?C=N;O=A download/Book/index.html?C=N;O=D download/Book/index.html [root@elk software]# [root@elk software]# ls -ltr | grep download drwxr-xr-x 3 root root 18 Aug 29 00:20 download -rw-r--r-- 1 root root 281477120 Aug 29 01:04 download.tar [root@elk software]# [root@elk software]# du -sh download.tar 269M download.tar [root@elk software]# |
然后,上传到本地的XAMPP环境中,并解压:

最后,就可以离线浏览了:


关于命令【wget】的参数说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
-c,断点续传 -r,递归下载(适用于下载某个网页的某个路径及其子目录):很适合本文的场景 -nd,递归下载时不创建一层层的目录,把所有文件下载到当前目录(这是不好的)) -np,递归下载时不搜索上层目录: 目标路径:xxx.com/pub/target 如果没有[np],则会下载[pub]下的其他文件 -k,将绝对链接转化成相对链接:如果下载整个网站后需要脱机浏览,则最好增加该参数 -L,递归时,不进入其他的主机,如果A网站中包含B网站的链接,那么在这种情况下,如果没有[L],则会去B网站下载(这也是不好的) -p,下载网页所需要的所有文件 -A,指定要下载的文件样式的列表,多个样式使用逗号分隔 -i,跟一个文件,文件内指定需要执行下载操作的网站URL -o,下载过程的记录,写入日志文件 -Y,启用代理 -x,强制创建目录 -nH,不创建主机目录 -H,--span-hosts,递归时转到外部主机 |
【wget】其他场景下的用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
镜像网站: wget -r -p -np -k http://xxx.com wget -m http://xxx.com 网络环境不稳定的时候,需要下载某个网站上的部分文件: wget -t 0 -w 31 -c http://dsec.pku.edu.cn/BBC.avi -o down.log 网络环境不稳定的时候,将要下载的文件写入列表,并下载: wget -t 0 -w 31 -c -B ftp://dsec.pku.edu.cn/linuxsoft -i filelist.txt -o down.log 设置代理: # way 1 export PROXY=xxx # way 2 vi ~/.wgetrc http_proxy=xxx ftp_proxy=xxx 【wget】启用代理: wget -Y on -p -k https://sourceforge.net/projects/wvware/ |
【wget】的用法非常灵活,也不止以上这些用法。
Finished,…