0%

利用phantomJS进行网页截图

phantomJS之前用过的一个库,自带Webkit内核,JS驱动。

缺点是不支持Flash,没有可视化界面,恩,这些貌似还不算什么太大的问题?

需要实现的功能是截图功能,简单代码如下:

//  Usage:  snapshot.js URL PNGFile
//  Ex:     phantomjs snapshot.js http://www.baidu.com ~/Desktop/snapshot.png
var page = require('webpage').create(),
    address, output, size;

if (phantom.args.length < 2 || phantom.args.length > 3) {
    console.log('Usage: snapshot.js URL PNGFile');
    phantom.exit();
} else {
    address = phantom.args[0];
    output = phantom.args[1];
    page.viewportSize = { width: 1024, height: 768 };
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('Unable to load the address!');
        } else {
            window.setTimeout(function () {
                page.render(output);
                phantom.exit();
            }, 200);
        }
    });
}

使用方法如下:

phantomjs snapshot.js http://www.baidu.com ~/Desktop/snapshot.png
另外,phantomJS如果有brew安装也很方便,直接:
brew install phantomjs
linux下编译太慢了(要编译Webkit),直接放弃掉了