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'));
})
})