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


    方法1和代理 https://www.cnblogs.com/marklove/p/14817043.html

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

    网上当然有很多工具能用,但很多都是收费的,我们考虑一个免费小巧的工具来实现我们的要求,那就是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后缀的页面,我们如果想在本地用浏览器打开看没法直接打开,而且有时候我们可能只想下载某个网站目录下的文件,不想下载太多。

    我们需要限制下。

    我们用-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

    我们在左侧标红区域点击,跳转到的页面还是本地

    测试看来,我们成功的镜像了JS教程的页面,而且页面显示完好。

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

    1
    wget -c -m -k -np -p -E -U Mozilla --no-check-certificate 欲镜像的网址

    1
    wget -c -m -k -p -e robots=off -E -U Mozilla --no-check-certificate 欲镜像的网址(如果robots限制了采集内容可以用这一条)

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

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

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

    fireroothacker@Gmail.com

  • 相关阅读:
    一台计算机安装两个版本的MySQL
    用php实现显示上个月的最后一天
    SQL 如何去掉字段中千位的逗号(比如set @= '1,320.00' 想得到@= '1320.00' )
    jsp表单提交中的逻辑判断
    将两个字段中的值合并到一个字段中
    vue判断开始日期不能大于截至日期
    mySql中The user specified as a definer ('root'@'%') does not exist
    mysql GROUP_CONCAT给每个值加上单引号后再拼接
    javascript如何获取复选框中的值?
    mybatis中的useGeneratedKeys="true"
  • 原文地址:https://www.cnblogs.com/marklove/p/15936781.html
Copyright © 2020-2023  润新知