PhantomJS 是一个无界面的Webkit内核浏览器,内置JavaScript API,对DOM操作,CSS选择器,JSON,Canvas,SVG有非常快和原生的支持,可以用于页面自动化测试,网络监测,网页截图等
安装(linux平台为例,版本为2.1.1)
- wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
==或者是官网手动下载.bz2文件== - tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
本文假设放在:/usr/local/ 下(后边会用到这个路径) - 如果解压报错,可能系统没有安装bzip2,先执行下面命令安装:
yum install bzip2.x86_64
环境变量配置
- sudo vi /etc/profile
- 文件末尾增加:
export PATH=$PATH:/usr/local/phantomjs-2.1.1-linux-x86_64/bin - source /etc/profile
- 查看版本:phantomjs --version
截图中文网站乱码问题
- phantomjs --output-encoding=gbk --script-encoding=gbk demo.js
- phantom.outputEncoding="gbk"
截图没有文字
phantomjs截图过程中,发现没有文字信息,由于项目使用了微软雅黑,解决方法是安装微软雅黑字体
基础代码(截屏)
var page = require('webpage').create();
page.viewportSize = { width: 1024, height: 768 };
page.clipRect = { top: 0, left: 0, width: 1024, height: 768 };
page.open('http://example.com/', function() {
page.render('demo.png');
if (status === "success") {
//考虑到网页中使用了ajax进行异步加载数据,所以等待5秒钟让页面加载完成后再截屏
setTimeout(function() {
page.render('example.png');
phantom.exit();
}, 5000);
}
//phantom.exit();
});