【发布时间】:2015-09-05 17:17:48
【问题描述】:
我正在使用 CasperJS 来解析网页的内部文本并保存到 json 文件。
这是我的代码,我会在下面显示结果(我遇到的问题)!
var words = [];
var casper = require('casper').create();
var x = require('casper').selectXPath;
var fs = require('fs');
function getWords() {
var words = document.querySelectorAll('span.inner_tit');
return Array.prototype.map.call(words, function(e) {
return e.innerHTML;
});
}
function createFinal(wordArray) {
var out = [];
wordArray.forEach(function(word) {
out.push({"type": "river", "name": word, "spell": word.length});
});
return out;
}
casper.start('http://dic.daum.net/index.do?dic=kor');
casper.thenClick(x('//*[@id="searchSubmit"]'), function(){
console.log('searching');
});
casper.wait(2000, function() {
casper.then(function() {
words = this.evaluate(getWords);
});
});
casper.wait(3000, function() {
casper.thenClick(x('//*[@id="mArticle"]/div[2]/a[2]'), function (){
words = words.concat(this.evaluate(getWords));
});
});
casper.run(function() {
var my_object = { "my_initial_words": createFinal(words)};
this.echo(JSON.stringify(my_object, null, '\t'))
var result = JSON.stringify(my_object, null, '\t')
fs.write('myresults.json', result, 'a');
this.exit();
});
这段代码的问题是,当我有这样的json代码时,
{
"my_initial_words": [
{
"type": "river",
"name": "apple",
"spell": "5"
},
{
"type": "river",
"name": "banana",
"spell": "6"
}
]
}
我的代码附加了所有内容,包括像这样的 json 数组的名称!
{
"my_initial_words": [
{
"type": "river",
"name": "apple",
"spell": "5"
},
{
"type": "river",
"name": "banana",
"spell": "6"
}
]
} {
"my_initial_words": [
{
"type": "river",
"name": "apple",
"spell": "5"
},
{
"type": "river",
"name": "banana",
"spell": "6"
}
]
}
所以.. 我不需要添加所有内容,只想添加这些元素! (没有“我的_initial_words:[]”)
{"type": "river", "name": "apple","spell": "5"},
{"type": "river", "name": "banana","spell": "6"}
【问题讨论】:
标签: javascript json casperjs