如何克隆一个网站全站或部分内容

我们有时会有这种需求,看到有个网站很多文章内容不错,想把它们全部保存下来在手机上或电脑上有空再看(有空~~~),但是不想联网看,或者我们想在公司内网搭个网站,和这个网站内容一模一样,方便公司人员阅读,这时候我们如何做这个网站的镜像呢?

网上当然有很多工具能用,但很多都是收费的,我们考虑一个免费小巧的工具来实现我们的要求,那就是 Linux 上一个有名的工具 wget

一、用WGET做网站镜像

这个工具有windows版本,网上搜一下 wget for windows,找到合适地址下载。

因为我是64位系统,所以下载了上面64位exe的地址

下载下来后,为了能在命令行中方便使用,我把它放到了C:\Windows\System32目录下(如果你会设置环境变量可以设置上,你也可以用cd命令切换到wget所在目录进行操作)。

把wget.exe放到C:\Windows\System32以方便命令行使用

我们 WIN+R,输入 cmd 进入到命令行界面输入 wget -h 看下帮助信息

输入wget -h看下帮助信息

wget 的命令行参数太多了,我们只考虑对网站镜像有用的参数。

标红的即为做镜像的参数
标红的即为做镜像的参数

我们来看一个学习编程的网站w3school

如何克隆一个网站全站或部分内容

假如我们想做这个网站的镜像怎么办呢?

直接用 wget -m http://www.w3school.com.cn/

这种是最简单暴力的用法,但是如果网站引用了外部的链接,这个下载下来的东西太多了,而且有些 asp 后缀的页面,我们如果想在本地用浏览器打开看没法直接打开,而且有时候我们可能只想下载某个网站目录下的文件,不想下载太多。

我们需要限制下。

我们用-np参数来限制只拉取当前目录不拉取父目录的网址数据
我们用 -np 参数来限制只拉取当前目录不拉取父目录的网址数据
我们用-k参数链接指向本地,便于浏览
我们用 -k 参数链接指向本地,便于浏览
我们用-p参数让图片等信息需要来展示在HTML上的我们全下载
我们用 -p 参数让图片等信息需要来展示在 HTML 上的我们全下载

假如我们只想下载 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 的命令帮助进行解决,这个比较简单,就不一一介绍了。

如果命令语法在实际测试中有问题,欢迎提出建议和反馈。

发表评论

项目已添加到购物车。
0 项 - ¥0.00