我是ruby on rails和casperjs的新手!
我编写的代码可以从一些网页中解析很多单词(innerHTML)。
我知道如何运行此代码,我可以检查bash终端中的数据
但我不知道如何直接在我的数据库中插入这些数据(现在我使用的是SQLite3)
这是我的js代码......(文件名:application.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() {
// search for 'casperjs' from google form
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() {
// search for 'casperjs' from google form
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
,结果是(例如)
Fontconfig warning: ignoring C.UTF-8: not a valid language tag
150 words found:
word1
word2
word3
word4
word5
word6
word7
word8
word9
...
字数可能超过 7,000,000 !
所以我想在我的数据库表(seed.rb文件)中插入这些数据
告诉你更多细节,db表由3列组成,并且有很多行( 7,000,000 的解析数据)
这是我的迁移目录中的文件代码和我想插入我在column2中解析的单词(:word)!!
class CreateFans < ActiveRecord::Migration
def change
create_table :fans do |t|
t.string :type
t.string :word
t.string :spelling
t.timestamps null: false
end
end
end
这是seeds.rb
的代码(例如)
my_initial_words = [
['fruits', 'apple', 'ap'],
['fruits', 'banana', 'ba'],
['fruits', 'kiwi', 'ki'],
['fruits', 'melon', 'me'],
['foods', 'cake', 'ca'],
['foods', 'pizza', 'pi'],
['foods', 'hamburger', 'ha'],
['foods', 'hotdog', 'ho'],
['foods', 'toast', 'to']
]
my_initial_words.each do |word_data|
Fan.create(type: word_data[0], word: word_data[1], spelling: word_data[2])
end
作为结论,我想知道如何直接在我的DB种子文件中插入解析数据(通过casperjs)!或者有什么好方法可以保存数据吗?
感谢您阅读我的长篇问题!