微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 createWriteStream 为每个请求创建单独的文件

如何解决使用 createWriteStream 为每个请求创建单独的文件

我正在使用 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 举报,一经查实,本站将立刻删除。