1.request模块,用于请求网页
```javascript
const request = require('request');
const { JSDOM } = require('jsdom');
request.get(url,
function (err, res, body) {
if (err) throw err;
let dom = new JSDOM(body);
let excerpt = dom.window.document.querySelectorAll('.excerpt');
})
2.JSDOM模块,用于将请求到的网页转化为dom
```javascript
const { JSDOM } = require('jsdom');
let excerpt = dom.window.document.querySelectorAll('.excerpt');//根据选择器爬取所需的元素
3.fs模块,用于下载
request(url).on('error',(err)=> {console.log(err);}).pipe(fs.createWriteStream(`${__dirname}/download/dir/文件名.jpg`))
//pipe左侧是读取流,右侧是写入流
4.下载时使用asycn,await同步下载,使用Promise判断状态(不必须,逻辑流程自己控制)