Node.js web Scraper 运行ning 功能多次。我只想 运行 一次

Node.js web Scraper running function multiple times. I only want it to run once

我正在尝试将 ${car}、${link}、${price} 写入 csv 文件。我当前的代码会这样做,但它会多次运行我的函数,最后我在我的 csv 文件中分别得到 ${car}、${link} 和 ${price} 5 次,我只需要一次。任何帮助将非常感激!提前致谢!

const request = require('request');
const cheerio = require('cheerio');
const fs = require('fs');
const writeStream = fs.createWriteStream('post.csv');

//Write Headers

writeStream.write(`Title,Link,Price \n`)

request('https://bringatrailer.com/bmw/e46/?q=e46', (error, response, html) => {
    if(!error && response.statusCode == 200) {
        const $ = cheerio.load(html);


      //Grabs the title and link of the featured e46 listings off of bring a trailer
       $('.featured-listing-title-link').each((a, title) => {
        const car = $(title).text();
        const link = $(title).attr('href');
      


      //Grabs the prices of the featured e46 listings off of bring a trailer
       $('.featured-listing-meta-value').each((i, value) => {
        const price = $(value).text().replace(/,/,"");

        writeStream.write(`${car}, ${link}, ${price} \n`);
      });
    });

      

       //Write to CSV
        console.log('Scraping Complete...') 
  }
});

仅供参考,这是我希望我的 csv 文件的样子

根据这个特定网站的 DOM 结构,这对我来说是有效的。

const request = require("request");
const cheerio = require("cheerio");
const fs = require("fs");
const writeStream = fs.createWriteStream("post.csv");


writeStream.write(`Title,Link,Price \n`);

 request("https://bringatrailer.com/bmw/e46/?q=e46", (error, response, html) => {
   if (!error && response.statusCode == 200) {
    const $ = cheerio.load(html);

   var counter = 0;
   $(".featured-listing-title-link").each((a, title) => {
  const car = $(title).text();
  const link = $(title).attr("href");
  const pricetag = cheerio.load($(".featured-listing-meta-value")[counter]);
  const price = pricetag.text();
  //Grabs the prices of the featured e46 listings off of bring a trailer
  writeStream.write(`${car}, ${link}, ${price} \n`);
  counter += 2;
});

//Write to CSV
console.log("Scraping Complete...");
}
});