casperjs初体验

上一篇文章讲到了phantomjs,在搜索的过程中经常是出现casperjs的搜索结果。看到介绍说是比phantomjs更加易用,于是好奇地试了下如何使用casperjs

安装

我在mac上测试的,使用brew命令即可,由于casperjs是基于phantomjs,所以需要先安装后者:

brew install phantomjs  
brew install casperjs  

模拟登录示例

以登录推酷并获取自己的收藏里面的文章标题为例。

首先是初始化并设置参数:

var casper = require('casper').create({  
    verbose: false,
    logLevel: 'debug',
    pageSettings: {
         loadImages:  false,
         loadPlugins: false,
         userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4'
    }
});

打开网页登录页,找到输入框,使用sendKeys填充,然后click提交

casper.start('http://www.tuicool.com/login', function() {  
    this.sendKeys('input[id="xlEmail"]', 'x@y.com');
    this.sendKeys('input[id="xlPassword"]', 'zzzz');
    this.click('button[type="submit"]');
});

然后用thenOpen打开收藏页面,但是需要在then函数里,如果直接用then其实还是原先的登录url里,具体解释有点烧脑,接着用fetchText取出<span class="title"></span>的内容:

casper.then(function(){  
    this.thenOpen('http://www.tuicool.com/articles/my', function(){
    this.echo(this.fetchText('span[class="title"]'));
    });
});

最后要执行run,因为之前的步骤都只是加入到casperstack而已,通过run才能正式执行

casper.run();  

其他

casperjs提供了许多方便操作的api,请见文档

have fun.