1、需求
扒取当前网页的请求资源,包括:js、css、
2、环境及使用工具
NodeJS puppeteer Gulp
3、环境的搭建
3-1、安装nodejs
为了支持async和await,我们需要安装较高版本的node,具体安装过程查看官网:(https://nodejs.org/zh-cn/download/)
3-2、安装puppeteer
MAC用户建议使用yarn来安装,安装方式如下:[在安装的过程中,会默认安装chromium,如果安装不成功,可以跳过该安装过程,自己手动安装chromium]
yarn add puppeteer
npm install puppeteer
3-3、安装gulp
需要全局安装gulp
npm install --save-dev -g gulp
4、爬虫代码
4-1、请求资源的获取
const links = [];
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url);
const allRequests = new Map();
await page.on('request', req => {
links.push(req._url);
allRequests.set(req.url(), req);
});
await page.reload({waitUntil: 'networkidle0'})
await browser.close();
4-2、资源的下载
const download = require('gulp-downloader');
gulp.task('download', function () {
return new Promise(function (resolve, reject) {
download(url).pipe(gulp.dest('./dist'));
})
})