【发布时间】:2015-09-02 18:14:20
【问题描述】:
我编写的代码可以解析一些网页中的大量单词(innerHTML)。
我想直接将数据插入json文件..
这是我的 js 代码...
var words = [];
var casper = require('casper').create();
function getWords() {
var words = document.querySelectorAll('td.subject a');
return Array.prototype.map.call(words, function(e) {
return e.innerHTML;
});
}
casper.start('http://www.todayhumor.co.kr/board/list.php?table=bestofbest', function() {
words = this.evaluate(getWords);
});
for (var i=2; i <=5; i++) {
casper.thenOpen('http://www.todayhumor.co.kr/board/list.php?table=bestofbest&page='+i, function() {
words = words.concat(this.evaluate(getWords));
});
}
casper.run(function() {
// echo results in some pretty fashion
this.echo(words.length + ' links found:').exit();
this.echo(words.join('\n')).exit();
});
和
我通过这样的终端运行这段代码!
username@wow:~/workspace/app/assets/javascripts $ casperjs application.js
结果是(例如)
150 words found:
apple
banana
melon
kiwi
citrus
watermelon
passionfruit
mango
orange
...
所以我想将此数据插入到我的json文件的“word”部分(下面的json示例代码)
并自动添加其他列("type": "fruit" and "spell":)
{ "my_initial_words": [
{
"type": "fruit",
"word": "apple",
"spell": "ap"
},
{
"type": "fruit",
"word": "banana",
"spell": "ba"
},
{
"type": "fruit",
"word": "melon",
"spell": "me"
}
]
}
----------------------------------------------------------------------------
感谢您添加更多答案!.. 但我不知道我应该把这些代码放在哪里
您能否再告诉我一次...您给我的哪个代码执行“将结果保存到 JSON 文件?”因为我必须像这样在seeds.rb 文件中读取 json 文件(makeyourap.json)
require 'json'
file = File.open(Rails.root.join('db','makeyourap.json'))
contents = file.read
json = ActiveSupport::JSON.decode(contents)["my_initial_words"]
【问题讨论】:
-
生成
type和spell属性的规则是什么? -
其实我会像这样解析数据.. 1. 搜索“fruit” 2. 获取网页的 innerhtml 结果。所以在“type”的情况下,我想我必须直接写“fruit”然后进行迭代,“spell”是“word”的第一个和第二个拼写!
标签: javascript ruby-on-rails json casperjs