将 casper javascript 数据插入 CSV 文件

Insert casper javascript data to CSV file

我想将数据从 casper JS 传递到我当前使用的 CSV 文件

fs = require('fs');
fs.write('test.csv', "name, title", "a");
fs.write('test.csv', name.trim()+","+title.trim(), "a");

这是一个循环,所以有很多记录

但是打印到 CSV 文件并没有插入新行。它目前是这样写的,我只想要 2 列

Name    Title
name1   name1    name2   title2    name3   title3

每次写入后添加一个换行符

fs.write('test.csv', "name, title\n", "a");

编辑

请注意,虽然这解决了换行(行)问题,但 CSV 不仅仅是在条目之间添加逗号。如果您的任何数据包含逗号,则需要将其转义。

https://en.wikipedia.org/wiki/Comma-separated_values

有一些库需要注意,例如 https://github.com/wdavidw/node-csv#readme -- 但如果您完全了解数据的行为方式,则可以继续您的解决方案。

添加换行符

fs.write('test.csv', name.trim()+","+title.trim()+"\n", "a");

CSV 各不相同,但通常都有四个特殊字符,

  • 分隔符(逗号)
  • escape char(通常\,用于在数据中使用时转义其他特殊字符
  • 换行符(通常是\n,即换行符),
  • wrapper,(通常用引号包裹每个值)

所以,如果您真的想要一个合适的 CSV,您可以这样做。

function escapeCSVData(text){
    text = text.
        replace("\", "\,"). // escape any escape chars
        replace(",", "\,"); // escape commas
    return '"'+text+'"'; // add quotes
}

fs.write('test.csv', escapeCSVData(name.trim())+","+escapeCSVData(title.trim())+"\n", "a");

我没有测试上面的内容,但这应该适合你。

编辑

我刚刚了解到逗号只是被引用,而不是被转义,所以函数实际上看起来像这样..

function escapeCSVData(text){
    return '"'+text+'"'; // add quotes
}