casperjs关于页面内容及ajax抓取

Posted by VickyWu on February 20, 2017

关于casperjs

Casperjs是一个开源的导航脚本处理和测试工具,基于Phantomjs和SlimerJS。它简化了页面间导航的定义过程,提供了处理常见任务的实用的高级函数、方法和语法糖。

安装及下载

首先需要装Phantomjs,>=1.9.1; python,>=2.6;

mac中默认安装了python,python–version可以查看python的版本

npm install -g casperjs

casperjs语法

1.casper.start(url)url可不填 首先创建并打开一个浏览器

2.casper.open(url) 打开页面

3.casper.then(function(){}) 上一步执行结束后执行

4.casper.wait(time,function(){}) 等待相应时间后执行

5.casper.evaluate(function(){},{parameter,argument}) 操作dom

6.casper.run(function(){}) 执行

7.casper.echo() 输出

8.casper.exit() 退出

9.casper.repeat(num,function(){}) 重复执行相应次数

操作dom

1.casper.getElementAttributes(selector,attribute) 获取第一个选择器的相应属性

2.casper.getElementsAttritutes(selector,attribute) 获取所有相应选择器的相应属性

3.casper.getElementInfo(selector) 获取相应选择器的信息

4.casper.download(url,target) 下载相应页面到目标文件

5.casper.getPageContent() 打开页面后,获取页面body的html

6.casper.getHTML('selector') 获取选择器的html

7.casper.getCurrentUrl() 获取当前页面的url

8.casper.exists(selector) 返回布尔值,判断是否存在该选择器

实例

发送ajax

var ajaxInfo=casper.evaluate(function(){
return JSON.parse(__utils__.sendAJAX(url, 'GET', null, false));
})

打印

this.echo(JSON.stringify(all));
require('utils').dump(all);

工作机制

.then/.wait/.exit是异步的

只有执行了.run才开始真正执行