因为phantomjs使用了一个真正的渲染引擎WebKit,它能截取一个web页面的真实影像,这是因为phantomjs能够折射出WEB页面上的任何东西,包括html,css,svg和Canvas等。
新建一个JS文件,baidu.js。
// 写入以下内容
var page = require("webpage").create(); // 设置地址变量 var url='https://www.baidu.com' page.open(url,function(){ // 将该页面保存成图片 page.render("test.jpg"); phantom.exit(); })
执行:
phantomjs baidu.js
官方提供了一个更完整的将网页保存为图片的JS示例,文件名为rasterize.js ,在JS目录下的子目录examples下面。
执行方法:phantomjs rasterize.js http://ariya.github.io/svg/tiger.svg tiger.png
当然你也可以通过page的属性来改变视口的大小
var page = require("webpage").create(); // 视口的尺寸就是无头浏览器的真正大小 page.viewportSize = {1024,height:768}; // clipRect 是要获取的页面部分大小 page.clipRect = {top:0,left:0,1024,height:768}; page.open("http://example.com/",function(){ page.render("github.png"); phantom.exit(); });