版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
安装
- phantomjs安装
进入官网下载压缩包:http://phantomjs.org/download.html
解压到c盘并改名为phantomjs,并把路径加入到电脑环境变量里 - casperjs安装
进入官网下载压缩包:http://casperjs.org/
解压到c盘并改名为casperjs,并把路径加入到电脑环境变量里
创建一个casperjs实例
casperjs的执行脚本是由一个一个的step串联起来的,start表示第一步,然后后面的step用then来表示,依次执行:
var casper=require('casper').create({
verbose: true,
logLevel: error,
viewportSize: {
width: 1024,
height: 768
},
pageSettings: {
loadImages: false // 不加载图片
}
});
casper.start('www.baidu.com', function(){
this.echo("success!");
});
casper.run();
执行一个Casperjs文件
cd进入js脚本的路径位置
casperjs test.js
常用API
- start()、then()、run():Casper的几个步骤
casper.start('www.baidu.com',function(){
//操作1
});
casper.then(function(){
//操作2
});
casper.then(function(){
//操作3
});
casper.run();
- waitForSelector():等待网页DOM加载完成
casper.start('www.baidu.com',function(){
this.waitForSelector('form[action="/search"]');
})
- fill():填表
casper.start('https://www.baidu.com/',function(){
this.fill('form#form',{
'wd':'casperjs'
});
});
- evaluate():在当前页面环境下执行javascript语句
casper.then(function(){
var rsv_pq = this.evaluate(function(){
return $("input[name=rsv_pq]").val();
})
this.echo("rsv_pq: "+rsv_pq);
})
- log():打印日志
casper.start('',function(){
this.log('','error');
})
- echo():打印到标准输出
casper.start('www.baidu.com', function(){
this.echo('success!');
});
- capture()、captureSelector():截图
casper.start('www.baidu.com', function() {
this.capture('baidu1.png', {
top: 100,
left: 100,
width: 800,
height: 400
});
this.captureSelector('baidu2.png','#u1');
});
- scrollTo()、scrollToBottom():页面滚动
casper.start('www.bilibili.com', function() {
this.scrollTo(0, 1200);
});
注:这里只列出了几个常用到的,并不代表只有这么几个API!