const axios = require("axios")
const fs = require("fs")
async function captureEchoMusic() {
// max pages = 32
for (let pages = 1; pages <= 32; pages++) {
try {
const res = await axios({
url: `http://www.app-echo.com/api/recommend/sound-day?page=${pages}`,
timeout: 5000,
})
const list = res.data.list
for (let i = 0; i < list.length; i++) {
const reg = /[/\\:*?"<>|\s]/gis
const name = list[i].sound.name.replace(reg, "")
const source = list[i].sound.source
try {
const res = await axios({
url: source,
timeout: 2000,
responseType: "stream",
})
const rs = res.data
const ws = fs.createWriteStream(`./music/${name}.mp3`, {
emitClose: true,
autoClose: true,
})
res.data.pipe(ws)
await new Promise(resolve=>{
rs.on("end", () => {
ws.end()
resolve()
})
})
// fs.writeFile(`./music/${name}.mp3`,res.data,(err)=>{}) ->
console.log(`Loading - Current progress bar - (${+i+1}/${list.length})`);
console.log(`${name} Download success\n`)
} catch (error) {
console.log(`${name} Download failed\n`)
}
}
console.log(`request pages ${pages} success\n`)
} catch (error) {
console.log(`request pages ${pages} failure\n`)
}
}
}
captureEchoMusic()
Node.JS - 爬取echo回声
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、echo Echo回声.记得14年的时候就有了,它家最出名的就是独家首创3D音乐、和立体环境音.好久没听了,刚...
- 利用 Node.js 爬取一个网页,通过第三方模块 cheerio.js 分析这个网页的内容,最后将这个网页的图片...
- 主要内容:利用 Node.js 爬取一个网页,通过第三方模块 cheerio.js 分析这个网页的内容,最后将这个...
- 1. 前言 这篇文章藏在心中已经好一段时日了,迟迟不敢动笔,主要是担心不知道该如何去组织这样一篇技术文章。 其实个...
- GitChat 课程页面分析 课程列表页 GitChat 课程页面链接为:https://gitbook.cn/g...