将casper javascript数据插入CSV文件

And*_*rei 0 javascript phantomjs casperjs

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

fs = require('fs');
fs.write('test.csv', "name, title", "a");
fs.write('test.csv', name.trim()+","+title.trim(), "a");
Run Code Online (Sandbox Code Playgroud)

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

但是打印到CSV文件不会插入新行.它目前写得像这样,我只想要2列

Name    Title
name1   name1    name2   title2    name3   title3
Run Code Online (Sandbox Code Playgroud)

小智 5

添加换行符

fs.write('test.csv', name.trim()+","+title.trim()+"\n", "a");
Run Code Online (Sandbox Code Playgroud)

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

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

所以,如果你真的想要一个合适的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");
Run Code Online (Sandbox Code Playgroud)

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

编辑

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

function escapeCSVData(text){
    return '"'+text+'"'; // add quotes
}
Run Code Online (Sandbox Code Playgroud)