javascript - 使用 CasperJS 通过 AJAX 获取页面的远程数据
在执行 CasperJS 脚本的过程中,我需要从另一个站点获取并解析 JSON 数据,以便我可以使用这些数据填写我正在使用的站点上的表单。
我该怎么做这个?
答案#1
你可以使用 __utils__.sendAJAX() :
var casper = require('casper').create();
var wsurl = 'https://raw.github.com/n1k0/casperjs/master/package.json';
var word;
casper.start('http://google.com/', function() {
word = this.evaluate(function(wsurl) {
try {
return JSON.parse(__utils__.sendAJAX(wsurl, 'GET', null, false)).name;
} catch (e) {
}
}, {wsurl: wsurl});
});
casper.then(function() {
if (!word) {
this.die('unable to retrieve word');
}
this.echo('searching for ' + word);
this.fill('form[action="/search"]', {q: word}, true);
});
casper.run(function() {
this.echo(this.getCurrentUrl());
this.exit();
});
示例执行(别忘了传递 --web-security=no):
casperjs test.js --web-security=no
searching for casperjs
http://www.google.fr/search?hl=fr&source=hp&q=casperjs&gbv=2&oq=&gs_l=
希望这有帮助。
