ローカルのJSONファイル(設定ファイルなど)を要求し、そのJSONオブジェクトを渡して評価しようとしています。各設定ファイルに対して、評価関数は、config JSONの指定されたCSSセレクタに応じて異なる結果を返します。例えばローカルJSONファイルを必要とするCasperjs
:これは私がしようとしたときに、私が得るものです
var casper = require('casper').create();
var require = patchRequire(require);
var json = require('./config/example.json');
casper.start('https://website/to/be/scraped');
casper.then(function(){
this.echo(json);
pageData = this.evaluate(function(json){
var results = {};
results['title'] = json.title;
results['date'] = json.date;
return results;
}, json);
this.echo(pageData);
});
casper.run(function(){
this.exit();
});
rootdir
casperExample.js
config/
|_example.json
example.json
{
"title": "$('div.pointslocal-details-section h1').text();",
"date": "$('div.pointslocal-details-time p').text();"
}
casperExample.js: フォルダ構造は、このようなものです実行する:casperjs casperExample.js
CasperError: Can't find module ./config/example.json
C:/Users/msarc/coding/casper/rootdir/phantomjs:/code/bootstrap.js:307 in patchedRequire
と私は(.jsonなし)var json = require('./config/example');
を使用する場合、私は私が最終的には、複数の設定ファイルを作りたい
SyntaxError: Expected token '}'
C:/Users/msarc/coding/casper/rootdir/phantomjs:/platform/example.js:32 in loadModule
C:/Users/msarc/coding/casper/rootdir/phantomjs:/platform/bootstrap.js:282 in _compile
C:/Users/msarc/coding/casper/rootdir/phantomjs:/platform/bootstrap.js:126 in .js
C:/Users/msarc/coding/casper/rootdir/phantomjs:/platform/bootstrap.js:278 in _load
C:/Users/msarc/coding/casper/rootdir/phantomjs:/platform/bootstrap.js:311 in require
C:/Users/msarc/coding/casper/rootdir/phantomjs:/platform/bootstrap.js:263 in require
C:/Users/msarc/coding/casper/rootdir/phantomjs:/code/bootstrap.js:302 in patchedRequire
、さまざまなウェブサイトのための異なるセレクターでそれぞれを取得します。 casperjsバージョン:1.1.4 phantomjsバージョン:2.1.1
これは、感謝しました!しかし、JSONファイルから文字列を評価するために、私はeval(json.title)を使用しています。複数のeval文を使用する代わりに使用できますか? –
私は助けてよかった。それがうまくいって助けになった場合は、その答えを受け入れないでください。あなたのコメントの別の質問については、私はあなたが何を意味するか分からない。多分あなたは別の質問を開くことができますか?これはJSONの読み込みに関するもので、各質問ごとに1つの問題に固執するのがよいでしょう。 – Vaviloff