背景

克隆一个使用的懒加载的h5页面;用于打包给客户端在没有网络的情况下可以显示页面内容;

方案一

使用wget

  1. wget -e robots=off --restrict-file-names=nocontrol -w 1 -x -nH -pk -nc -l 1 -t 5 -P "dist" "https://www.baidu.com"

附完整的代码: trational.sh

优点

使用简单;下载下来的资源访问方式,会自动转换为相对地址;

缺点

  • 碰到动态内容的页面就压根儿没办法下载了;
  • 默认值下载js、css、image;无法自定义要下载哪些资源;如要下载的资源是放在 data-origin 字段里面,这时候wget是不会主动去下载了;
  • 下载下来的入口页面不是index.html;

方案二

使用PhantomJS把动态页面资源转换为静态资源,然后再下载;安装参考:https://tecadmin.net/install-phantomjs-on-centos/
附完整源码: phantom.js

优点

  • 页面即使是动态内容,也不担心,因为会解析成静态内容;

缺点

  • 下载的过程必须自己写;不能再用wget了;

方案三

使用node的一个解决库: website-scraper 来抓取;使用参考:https://www.npmjs.com/package/website-scraper

附完整代码: main.shwebsite-scraper.js

优点

  • 可以自定义采集的内容,如要采集属性里面的某个资源,例如data-origin 这a个属性的资源;
  • 下载下来的内容,会自动转化为相对路径,并且路口文件会自定义命名为inadex.html,并放在顶层目录;

缺点

  • 只能针对一些半动态页面使用,如果是全动态的页面,就没办法使用;如可以采集一些懒加载的页面;
  • 因为我们的目标是采集一个半动态的页面;刚好用这个方式可以满足;