centos下利用phantomjs来完成网站页面快照截图
最近研究了下phantomjs,感觉还是非常不错的。
首先到官网下载一个源码包
http://phantomjs.org/download.html
点击源码包下载如图:
然后在linux下将必要的一些软件都用yum方式先安装好
sudo yum -y install gcc gcc-c++ make flex bison gperf ruby \ openssl-devel freetype-devel fontconfig-devel libicu-devel sqlite-devel \ libpng-devel libjpeg-devel
接着,解压下载好的源码包,执行./build.sh
他还提示这个安装过程可能会比较长,大约30分钟左右,安装好后,在当前目录下会有个bin/目录,将bin/目录下的phantomjs移动到/usr/bin下即可
到这里,phantomjs就安装好了
到一个空目录下创建一个jietu.js文件,代码如下:
注释部分开启后屏幕将以1024*768的尺寸截取网页第一屏,
var page = require('webpage').create(); var args = require('system').args; var pageW = 1024; var pageH = 768; //page.viewportSize = { // width: pageW, // height: pageH //}; var url = args[1]; var filename = args[2]; page.open(url, function (status) { if (status !== 'success') { console.log('Unable to load ' + url + ' !'); phantom.exit(); } else { window.setTimeout(function () { // page.clipRect = { left: 0, top: 0, width: pageW, height: pageH }; page.render(filename); console.log('finish:', filename); phantom.exit(); }, 1000); } });
最后执行如下命令
//>phantomjs js文件 要截取的网址 图片存储路径 >phantomjs ./jietu.js http://www.cnblogs.com ./cnblogs.png
图片就截图好了,如图