背景
克隆一个使用的懒加载的h5页面;用于打包给客户端在没有网络的情况下可以显示页面内容;
方案一
使用wget
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,并放在顶层目录;
缺点
- 只能针对一些半动态页面使用,如果是全动态的页面,就没办法使用;如可以采集一些懒加载的页面;
- 因为我们的目标是采集一个半动态的页面;刚好用这个方式可以满足;