phantomjs mysql_浏览器引擎-phantomjs初次认识

最近没什么重要的任务,就抽空看了看项目组爬虫小组的代码,因为我们的爬虫主要是以python的scrapy框架为主,看起来比较方便。在看代码的时候看到一个叫phantomjs的东西,蛮新鲜的,就去问了下爬虫开发,这货是干嘛用的?开发告诉我这个东西是一个js引擎,我们在抓取ajax页面的时候用的,你们QA不是一直用selenium对付那些js渲染的东西么,可以去试试这个,不需要用浏览器的。于是,回去查了一下phantomjs这个东西,学习了下,感觉还是蛮容易上手的。

Phantomjs是一个轻量的浏览器引擎,官网介绍中提到,它主要用在这几个场合:官网地址:http://phantomjs.org/

web测试,主要是可以又轻又快捷的进行web测试,还不用去再去依赖浏览器,用过selenium的朋友都知道,打开一个浏览器是多么痛苦的事,特别是FireFox,并且他支持很多测试框架,比如RobotFrame,WebDrive等。

页面自动化渲染.可以通过标准的domApi来操作页面元素,并且,你也可以注入Jquery,这样就可以通过jquery来操作页面元素了.

屏幕捕捉,这个好。有的时候case失败了,想捕捉屏幕的时候,用selenium自带的捕捉老是遇到浏览器兼容问题,用这个来捕捉应该会稳定很多、

网络监视.这个我接触的不多,主要说是可以自动分析页面的加载速度,并且还可以导出标准的HAR格式文件。

使用方法:

运行命令就是 phtntomsjs + js 脚本就可以

Phtntomsjs自带是有几个模块,System,Webpage,Child_Process,WebServer

具体应用:

1.简单的访问环境变量的例子

var system = require('system');//通过require返回一个外部模块的接口,这里的外部模块接口是system

var env=require('system').env;if (system.args.length === 1) {

Object.keys(env).forEach(function(key) {

console.log(key+ '=' +env[key]);

}

)}else{

system.args.forEach(function(arg, i) {

console.log(i+ ': ' +arg);

});

}

phantom.exit();

2.网页截图,网页截图用到了webpage模块,比如我想把博客园首页截图下来

var page = require('webpage').create();

page.open('http://cnblogs.com/', function() {

page.render('cnblog.png');

phantom.exit();

});

3.网页加载的例子

var page = require('webpage').create(),

system= require('system'),

t, address;if (system.args.length === 1) {

console.log('Usage: loadspeed.js ');

phantom.exit(1);

}else{

t=Date.now();

address= system.args[1];//打开一个地址

page.open(address, function(status) {if (status !== 'success') {

console.log('FAIL to load the address');

}else{

t= Date.now() -t;//evaluate用来执行一个方法

console.log('Page title is ' + page.evaluate(function() {returndocument.title;

}));

console.log('Loading time ' + t + ' msec');

}

phantom.exit();

});

}

其实这个网页加载的最好应用就是测试网页的各种性能,不需要打开浏览器去查询,如果配合雅虎的Yslow工具,加上hudson(jenkins)就能把网页的加载也进入到持续继承测试里面。

毕竟在linux下面,很多时候是没有图形界面的,phantomjs+Yslow+hudson的超级组合:http://yslow.org/phantomjs/

总之:phantomjs是一个很强大的浏览器引擎,因为我也刚刚接触没多久,很多地方还不是很熟悉,不过幸好他的文档很多,例子也很丰富,基本上自带的例子都可以当做一个api来调用,上手也很简单,对js有点基础的朋友都可以马上上手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值