Java调用phantomjs 进行动态网页截图
如何安装:
http://npm.taobao.org/dist/phantomjs/ 镜像网站
下载phantomjs安装文件,直接解压到相关目录,解包:tar jxvf FileName.tar
创建软连接方便调用:(如果报错使用 ln -sf 强制执行)
ln –s /root/satanbox/phantomjs/phantomjs-1.9.7/bin/phantomjs /usr/bin/phantomjs
安装相关库 :yum install freetype-devel fontconfig-devel
截图中文乱码:安装编码
在centos中执行:yum install bitmap-fonts bitmap-fonts-cjk
在ubuntu中执行:sudo apt-get install xfonts-wqy
测试
phantomjs /home/satanbox/phantomjs/phantomjs-1.9.7/examples/rasterize.js http://www.baidu.com ; /home/satanbox/test/a.png
编写服务器Java代码
String BLANK = " ";
String basePath = "/home/cloudlinkin/phantomjs-2.1.1-linux-i686/"; //应用跟目录
Process process = Runtime.getRuntime()
.exec(basePath + "bin/phantomjs" + BLANK // 你的phantomjs执行文件路径
+ basePath + "/examples/rasterize.js" + BLANK // javascript脚本的路径
+ "https://www.baidu.com" + BLANK // 你的目标url地址
+ "./tupian.png");// 你的图片输出路径
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String tmp = "";
while ((tmp = reader.readLine()) != null) {
System.out.println(tmp);
}
if (reader != null) {
reader.close();
}
if (process != null) {
process.destroy();
process = null;
}
System.out.println("渲染成功...");