我们有时会有这种需求,看到有个网站很多文章内容不错,想把它们全部保存下来在手机上或电脑上有空再看(有空~~~),但是不想联网看,或者我们想在公司内网搭个网站,和这个网站内容一模一样,方便公司人员阅读,这时候我们如何做这个网站的镜像呢?
网上当然有很多工具能用,但很多都是收费的,我们考虑一个免费小巧的工具来实现我们的要求,那就是 Linux 上一个有名的工具 wget。
一、用WGET做网站镜像
这个工具有windows版本,网上搜一下 wget for windows,找到合适地址下载。
下载下来后,为了能在命令行中方便使用,我把它放到了C:\Windows\System32目录下(如果你会设置环境变量可以设置上,你也可以用cd命令切换到wget所在目录进行操作)。
我们 WIN+R,输入 cmd 进入到命令行界面输入 wget -h 看下帮助信息
wget 的命令行参数太多了,我们只考虑对网站镜像有用的参数。
我们来看一个学习编程的网站w3school
假如我们想做这个网站的镜像怎么办呢?
直接用 wget -m http://www.w3school.com.cn/
这种是最简单暴力的用法,但是如果网站引用了外部的链接,这个下载下来的东西太多了,而且有些 asp 后缀的页面,我们如果想在本地用浏览器打开看没法直接打开,而且有时候我们可能只想下载某个网站目录下的文件,不想下载太多。
我们需要限制下。
假如我们只想下载 w3school 上的 JS 教程,我们用如下命令即可:
wget -m -k -np -p http://www.w3school.com.cn/js/index.asp
但是这个命令还是缺少一些东西,比如后缀有ASP,其它的还有断点续传,文件后缀,模拟浏览器,https下是否检查证书等。
我们最后总结下最合适的镜像网站语法,假如想对网站 http://www.XXXX.com 做镜像,而且做出来的镜像方便本地浏览器直接打开查看,用如下命令:
wget -c -m -k -np -p -E -U Mozilla –no-check-certificate http://www.XXXX.com
二、WGET 做镜像演示
我们先实际操作一下,我们下载下 JS 的教程.。
wget -c -m -k -np -p -E -U Mozilla –no-check-certificate http://www.w3school.com.cn/js/index.asp
我们用浏览器直接双击打开上面标红的 index.asp.html
,如下图:
测试看来,我们成功的镜像了JS 教程的页面,而且页面显示完好。
总结:最终用到的命令如下:
wget -c -m -k -np -p -E -U Mozilla --no-check-certificate 想镜像的网址
wget -c -m -k -p -e robots=off -E -U Mozilla --no-check-certificate 想镜像的网址(如果 robots 限制了采集内容可以用这一条)
你也可以用一些 CHM 制作软件把镜像完的本地 HTML 制成 CHM 格式的教程发布出去。
如果你想进行限速,间隔下载等特殊需求可以网上查找下 wget 的命令帮助进行解决,这个比较简单,就不一一介绍了。
如果命令语法在实际测试中有问题,欢迎提出建议和反馈。