如何克隆一个网站全站或部分内容(做网站镜像)

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

网上当然有很多工具能用,但很多都是收费的,我们考虑一个免费小巧的工具来实现我们的要求,那就是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教程的页面,而且页面显示完好。


总结:最终用到的命令如下:

 

 

你也可以用一些CHM制作软件把镜像完的本地HTML制成CHM格式的教程发布出去。

如果你想进行限速,间隔下载等特殊需求可以网上查找下wget的命令帮助进行解决,这个比较简单,就不一一介绍了。

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

posted on 2021-04-19 07:42  facenano  阅读(9199)  评论(0编辑  收藏  举报