【发布时间】:2015-01-20 02:26:23
【问题描述】:
我正在尝试使用 papa parse 在 CasperJS 中加载和解析一个 csv 文件。
这是该任务的代码
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:34.0) Gecko/20100101 Firefox/34.0',
pageSettings: {
loadImages: true,
loadPlugins: false,
webSecurityEnabled: false
},
clientScript: [
'jquery-2.1.3.min.js',
'jquery.csv-0.71.min.js',
'papaparse.min.js'
],
viewportSize: {
width: 1440,
height: 900
}
});
var fs = require('fs');
casper.on('remote.message', function(msg) {
this.echo('remote message caught: ' + msg);
});
casper.start();
casper.then(function(){
var input = fs.read('order4.csv');
var config = {
delimiter: "", // auto-detect
newline: "", // auto-detect
header: true,
dynamicTyping: false,
preview: 0,
encoding: "",
worker: false,
comments: false,
step: undefined,
complete: undefined,
error: undefined,
download: false,
skipEmptyLines: true,
chunk: undefined,
fastMode: undefined
}
var a = {'config' : config, 'input' : input}
/* var result = this.evaluate(function(input) {
//console.log(input);
var results = jquery.csv.toObjects(input);
console.log(results);
return results;
},input);*/
//var result = Papa.parse(a['input'],a['config']);
var result = this.evaluate(function(a) {
console.log('111111111111111111111' + a['input']);
var results = Papa.parse(a['input'],a['config']);
console.log('2222222222222222222' + results);
return results;
},a);
this.echo('333333333333333' + result);
});
casper.run();
evaluate 内的$input 可见,但$results 和最后一个命令中的$result 为空。
有没有更好的方法在 CasperJS 中加载和解析 csv 文件。我只想加载本地 csv 文件,如何在 evaluate() 之外调用 Papa.parse。
【问题讨论】:
-
像 php 中的 print_r()。是的,我从内部评估中看到了 console.log。 evaluate 里面的console.log 只是为了检查evaluate 里面是否发生了什么。
-
它不是整个脚本。只是那部分不起作用。我有函数 print_r() 不是问题。
-
这将是整个脚本,至少不工作的部分“11111 ....”是可见的,包括输入。 '222222...' 不可见,连 2 的字符串也不可见。'333333...' 可见但结果 === null
-
好的,这意味着页面上下文中的
Papa存在一些错误。您还可以注册page.error事件以查看这是什么错误。我怀疑Papa是未定义的,因为 clientScripts 没有注入到空页面中。当您使用casper.start('http://example.com')时会发生什么?
标签: javascript casperjs papaparse