为什么我的CasperJS脚本无法登录Quora?

时间:2013-07-21 21:54:19

标签: javascript web-scraping screen-scraping phantomjs casperjs

这是我的代码:

var casper = require('casper').create({
    verbose: true,
    logLevel: 'debug'
});



casper.start('http://www.quora.com', function()
        {
                this.click('input.submit_button');
                this.echo("page loaded");
                this.test.assertExists('form.inline_login_form', 'form is found');
            this.fill('form.inline_login_form',{email:'xxxxxx@gmail.com',password:'xxxx'},false);

        }
);

casper.then(function(){
        this.click('input.submit_button');

});

casper.then(function(){

        this.capture('google.png', {
        top: 0,
        left: 0,
        width:0,
        height:0
    });
   this.echo("Page Title " + this.getTitle());
});

casper.run();

这是捕获方法产生的图像: enter image description here

为什么不登录? id和密码是正确的。

2 个答案:

答案 0 :(得分:2)

试试这个,必须工作:

var casper = require('casper').create({
viewportSize: {
    width: 1080,
    height: 768
}
}); 
var email = "xxx@abc.com"; 
var pass = "********";



casper.start('http://www.quora.com', function()
    {
            this.click('input.submit_button');
            this.echo("page loaded");
            this.test.assertExists('form.inline_login_form', 'form is found');
        this.fill('form#__w2_b3oUn76_login_form',{email:'email',password:'pass'},true);

    });

casper.waitForSelector("form[name=search_form] input[name='search_input']",
function(){
    this.capture('google.png');
   this.echo("Page Title " + this.getTitle());
});

casper.run();

答案 1 :(得分:1)

你应该在请求之间添加一些等待语句。可能有一些ajax你没有足够的时间被解雇。您还需要添加用户代理。有时,如果网页嗅出了您的用户代理,则会提供不同版本的网页。