在CasperJS中使用AJAX获取页面的远程数据 [英] Getting remote data for a page using AJAX in CasperJS

查看:69
本文介绍了在CasperJS中使用AJAX获取页面的远程数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在执行CasperJS脚本的过程中,我需要从另一个站点获取并解析JSON数据,以便我可以使用该数据填写我正在积极处理的站点上的表单。

In the course of executing a CasperJS script I need to fetch and parse JSON data from another site so that I can use that data to fill in a form on the site I'm actively working on.

我该怎么做?

推荐答案

你可以使用 __ utils __。sendAJAX()

You can use __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 =否):

Sample execution (don't forget to pass --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=

希望有所帮助。

这篇关于在CasperJS中使用AJAX获取页面的远程数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆