脚本宝典收集整理的这篇文章主要介绍了Node 批量抓取并下载某站点的图片,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
目标网站:妹子图(点进去别忘了回来~~)
项目功能:批量下载该网站的相册
姊妹项目:批量爬取并下载头条视频
启动项目
命令
npm i
npm start
配置文件
// 配置相关
module.exports = {
originPath: 'http://www.mzitu.com', // 请求地址
savePath: 'E:/meizi', // 存放路径
maxPage: 20 // 可爬取的最大页码
}
技术点
Axios: 发起 get 请求,获取页面和图片 stream
// 获取页面
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,可操作获取的文档对象
// 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: 保存图片到本地
await axios({
method: 'get',
url: imageSrc,
responseType: 'stream',
headers
}).then(function(response) {
response.data.pipe(fs.createWriteStream(fileName))
})
爬取结果截图
说明
此爬虫仅用于个人学习,如果侵权,即刻删除!
以上是脚本宝典为你收集整理的Node 批量抓取并下载某站点的图片全部内容,希望文章能够帮你解决Node 批量抓取并下载某站点的图片所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。