• centos7上安装phantomjs并对页面截屏


    安装
    wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
    yum install bzip2
    tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
    mv phantomjs-2.1.1-linux-x86_64 /usr/local/src/phantomjs
    ln -sf /usr/local/src/phantomjs/bin/phantomjs /usr/local/bin/phantomjs
    yum install -y fontconfig freetype2
    yum install -y bitmap-fonts bitmap-fonts-cjk
    yum groupinstall "fonts" -y
    fc-cache
    phantomjs -v

    测试1

    创建一个文件:hello.js

    console.log('Hello, world!');
    phantom.exit();

    运行:phantomjs hello.js

    输出:Hello, world!

    测试2

    创建一个文件:example.js

    var page = require('webpage').create();
    page.open('http://example.com', function(status) {
      console.log("Status: " + status);
      if(status === "success") {
        page.render('./example.png');
      }
      phantom.exit();
    });

    运行:phantomjs example.js

    输出图片文件:./example.png

    测试3

    默认的截图尺寸是400*300,这个太小了,可以指定浏览器可视区域尺寸。

    var page = require('webpage').create();
    var w = 1920;
    var h = 792;
    page.viewportSize = {  w, height: h };
    page.clipRect = { top: 0, left: 0,  w, height: h };
    page.open('http://example.com/', function(status) {
      console.log("Status: " + status);
      if(status === "success") {
        page.render('./example.png');
      }
      phantom.exit();
    });

    测试4

    对于异步加载的页面,需要等会待会才能截图。

    var page = require('webpage').create();
    var w = 1920;
    var h = 792;
    page.viewportSize = {  w, height: h };
    page.clipRect = { top: 0, left: 0,  w, height: h };
    page.open('http://example.com', function() {
      console.log("Status: " + status);
      if(status === "success") {
        window.setTimeout(function () {
            page.render('./example.png');
            phantom.exit();
        }, 3000);
      } else {
        console.log('Unable to load the address!');
        phantom.exit(1);
      }
    });

    作者:Lave Zhang
    出处:http://www.cnblogs.com/lavezhang/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    并发编程 Outline of Netty
    SpringCloud(CI/CDNexus+Gitea+Jenkins)
    ubuntu 桌面卡死 解决方法
    xrdp 服务器端及客户端配置
    linux 用户 配置
    windows 配置 多用户 远程桌面
    redis启动报无权限
    lambda表达式常用(常更)
    ABAP字符串控制函数
    [转]销售凭证处理的User Exit
  • 原文地址:https://www.cnblogs.com/lavezhang/p/14816545.html
Copyright © 2020-2023  润新知