问题描述
我正在使用 URL
发出多个 Axios
请求并使用 Cheerio
收集数据。
一切都很好,我只是不知道如何防止数据被使用 response
方法生成到文件中的前一个 createWriteStream
覆盖。
我正在尝试为每个请求创建不同的文件,最好使用唯一的名称,但在文档中没有找到任何解决方案。
const axios = require("axios").default;
const cheerio = require('cheerio');
const fs = require('fs');
const writeStream = fs.createWriteStream('./names/names.text')
const getTitle = (res) => {
const $ = cheerio.load(res.data);
const names = $('.name_wrap > .name')
names.each(function (i,el) {
const item = $(el).text().replace(/^\s*$/g,'')
writeStream.write(`${item}\n`)
});
}
// URL'S Array
let URLS = []
for (let index = 1; index <= 3; index++) {
let url = `https://www.example.com/name-1-${index}`
URLS.push(axios.get(url))
}
Promise.all(URLS)
.then(responses => {
getTitle(responses[0])
getTitle(responses[1])
});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)