目标网站:妹子图(点进去别忘了回来~~)
项目功能:批量下载该网站的相册
姊妹项目:批量爬取并下载头条视频ios
命令:git
1 npm i 2 npm start
配置文件:github
1 // 配置相关 2 module.exports = { 3 originPath: 'http://www.mzitu.com', // 请求地址 4 savePath: 'E:/meizi', // 存放图片路径 5 maxPage: 20 // 可爬取的最大页码 6 }
Axios: 发起 get 请求,获取页面和图片 streamnpm
// 获取页面 async getPage (url) { return { res: await axios.get(url) } } // 把获取的文件写入本地 await axios({ method: 'get', url: imageSrc, responseType: 'stream', headers }).then(function(response) { response.data.pipe(fs.createWriteStream(fileName)) })
Cheerio: 覆盖了 jQuery dom 部分核心 API,可操做获取的文档对象axios
// res.data: 获取的文档对象 let list = [] const $ = cheerio.load(res.data) // 获取文档中全部的相册 $('#pins li a').children().each((index, item) => { let album = { name: item.attribs.alt, // 相册名称 url: item.parent.attribs.href // 相册地址 } list.push(album) })
fs.createWriteStream: 保存图片到本地dom
await axios({ method: 'get', url: imageSrc, responseType: 'stream', headers }).then(function(response) { response.data.pipe(fs.createWriteStream(fileName)) })
此爬虫仅用于我的学习,若是侵权,即刻删除!async