node爬取网页图片
1、npm init
2、npm install axios – save
3、先实现从网上能下载图片到本地
第一版本(未优化)
const axios = require('axios')
// 内置路径模块
const path = require('path')
let fs = require('fs')
function download(imgUrl,filename) {
return new Promise((resolve,rejects) => {
// 路径获取扩展名
let extname = path.extname(imgUrl)
console.log(extname)
// 创建写入流
let ws = fs.createWriteStream('./imgs/'+filename+extname)
ws.once('close',(err) = >{
if(err) {
console.log(err)
} else {
console.log('写入流关闭成功')
}
})
axios.get(imgUrl, {
// 响应类型为流式
responseType:"stream"
}).then( (res) => {
res.data.pipe(ws)
// 当读取流读取完闭关闭写入流
res.data.once('close', (err) => {
if (err) {
rejects(err)
console.log(err)
} else {
console.log('读取流关闭成功')
ws.close()
resolve(`${
filename+extname}下载完毕`)
}
})
})
})
}
let imgUrl = 'http://wx2.sinaimg.cn/bmiddle/006Mi9iRgy1gug1hcsjiuj60go0gomxm02.jpg'
download(imgUrl,'可爱胖手表情包'