如何在CSV文件中存储Javascript数据

如何在CSV文件中存储Javascript数据,javascript,php,csv,web-scraping,Javascript,Php,Csv,Web Scraping,我正在使用PhantomJs库获取数据 var page = require('webpage').create(); console.log('The default user agent is ' + page.settings.userAgent); page.settings.userAgent = 'SpecialAgent'; page.open('https://www.apwagner.com/appliance-part/wpl/wp661600', function(stat

我正在使用PhantomJs库获取数据

var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('https://www.apwagner.com/appliance-part/wpl/wp661600', function(status) {
  if (status !== 'success') {
    console.log('Unable to access network');
  } else {
    var ua = page.evaluate(function() {
      return document.getElementById('ModelList').textContent;  
      //return document.getElementById('ModelList').innerHTML; 
    });
    console.log(ua);
  }
  phantom.exit();
});
输出

             1DNET3205TQ0
             7MMMS0100VW0
             7MMMS0100VW1
             7MMMS0120VM0
             7MMMS0140VW0
             7MMMS0160VW0
如果我试图使用innerHTML获取输出,那么输出如下

    <ul class="modelnos">
                        <li><a class="cursor" href="/appliance/1dnet3205tq0" onclick="return ProductService.SaveLogModelView('1DNET3205TQ0', 'MAC')"> 1DNET3205TQ0</a></li>
                        <li><a class="cursor" href="/appliance/7mmms0100vw0" onclick="return ProductService.SaveLogModelView('7MMMS0100VW0', 'MAC')"> 7MMMS0100VW0</a></li>
                        <li><a class="cursor" href="/appliance/7mmms0100vw1" onclick="return ProductService.SaveLogModelView('7MMMS0100VW1', 'MAC')"> 7MMMS0100VW1</a></li>
                        <li><a class="cursor" href="/appliance/7mmms0120vm0" onclick="return ProductService.SaveLogModelView('7MMMS0120VM0', 'MAC')"> 7MMMS0120VM0</a></li>
                        <li><a class="cursor" href="/appliance/7mmms0140vw0" onclick="return ProductService.SaveLogModelView('7MMMS0140VW0', 'MAC')"> 7MMMS0140VW0</a></li>
</ul>

组合使用
split()
函数和
join()
函数可以获得正确的结果。。(有关详细说明,请参见代码内部的注释)

注释显示为
灰色
,周围有
/*
*/

/*为ua值创建新数组*/
var my_数组=[];
var page=require('webpage')。create();
console.log('默认的用户代理是'+page.settings.userAgent);
page.settings.userAgent='SpecialAgent';
第页打开('https://www.apwagner.com/appliance-part/wpl/wp661600,功能(状态){
如果(状态!=“成功”){
console.log('无法访问网络');
}否则{
var ua=page.evaluate(函数(){
return document.getElementById('ModelList').textContent;
//return document.getElementById('ModelList').innerHTML;
});
控制台日志(ua);
/*将ua拆分为阵列*/
my_array=ua.split(/\s+/);
}
phantom.exit();
});
/*现在,在最后使用join()生成“csv”*/
/*“,”参数指定在值之间插入哪个字符*/
var csv_array=my_array.join(“,”);

console.log(csv_数组)第一部分的可能重复,而不是
console.log(ua)
您可以在数组中推送值。请尝试
split()
函数创建数组
ua.split('\n')
ua.split('')
取决于字符串中的分隔符。它将返回数组如何将此数据推入数组。这些数据一次打印一次once@abhishekkannojiaanu请检查问题中的更新
push()
用于将单个值放入数组,它不会创建值数组。你需要
split()
instead我刚刚更新了我的答案,以考虑到@anu saidAlso的内容,它不一定是空白,它可以是一个新行作为分隔符。因此,如果空格不起作用,您需要尝试
split('\n')
。@anu实际上
split(/\s+/)
匹配换行符和空格很好,那么我的坏文件不会在该位置创建。获取错误
TypeError:undefined不是一个函数(评估'fs.writeFile')
您正在使用
节点执行此操作。如果
phantomjs
那么请使用
fs.write(path,content,'w')
代替
fs.writeFile
您可以简单地创建一个变量数组
ua
,这样我就可以从该数组创建表。您想存储在csv文件中还是想创建一个html表?变量
array
包含一个数组中的所有值,您可以在上面的解决方案上迭代,而不是像打开csv文件时出现编码错误那样工作。我想要一个html表格格式的,可以放在csv文件
<table>
<tr><td> 1DNET3205TQ0 </td>
<td> 7MMMS0100VW0 </td>
<td> 7MMMS0100VW1 </td>
</tr>
<tr><td> 7MMMS0120VM0 </td>
<td> 7MMMS0140VW0 </td>
<td> 7MMMS0160VW0 </td>
</tr>
</table>
var array = [];
var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('https://www.apwagner.com/appliance-part/wpl/wp661600', function(status) {
    if (status !== 'success') {
        console.log('Unable to access network');
    } else {
        var ua = page.evaluate(function() {
            return document.getElementById('ModelList').textContent;
        });
        console.log(ua);
        array = ua.split(/\s+/);
    }
    phantom.exit();
});

var fs = require('fs');
//for users running with node
/*fs.writeFile("/home/data.csv", array.join(','), function(err) {
    if(err) {
        return console.log(err);
    }

    console.log("The file was saved!");
});*/
//for users running with phantomjs
fs.write('/home/data.csv', array.join(','), 'w');