首页 > 解决方案 > 如何将此代码生成的数据导出到 puppeteer 中的 CSV 文件?

问题描述

我需要将此代码生成的数据导出到 CSV 文件中。我是 node.js/puppeteer 的新手,所以我在努力生成 CSV 文件。

我知道我可以使用 fs write 函数并尝试将其添加到我的代码末尾但无济于事:

const fs = require('fs');

const csv = await page.$$eval('.product_desc_txt', function(products){

 // Iterate over product descriptions
    let csvLines = products.map(function(product){

    // Inside of each product find product SKU and its price
        let productId = document.querySelector(".custom-body-copy").innerText.trim();
        let productPrice = document.querySelector("span[data-wishlist-linkfee]").innerText.trim();

    // Fomrat them as a csv line
        return `${productId};${productPrice}`;
    });
     // Join all lines into one file
     return csvLines.join("\n");
     });
    fs.writeFileSync("test.csv", csv)
});

标签: node.jscsvweb-scrapingexport-to-csvpuppeteer

解决方案


你有来自 puppeteer 的数据的 csv,但不要使用它。只需将数据写入文件:

fs.writeFileSync("test.csv", csv);

还要写这个文件

'${productId};${productPrice}'

不起作用,那个地方没有这样的变量,即使有,将变量格式化为字符串的正确方法是使用反引号:

`${productId};${productPrice}`

推荐阅读