phantomjs插件---实现通过链接生成网页截图

Phantomjs | PhantomJS


  • 配置要求

    windows下,安装完成phantomJS
    设置phantomjs环境变量【也可直接使用phantomjs目录下的执行文件】
    直接通过访问php文件执行/通过cmd命令行执行【phantomjs phantom_script.js】

    linux下,安装完成phantomJS
    设置phantomjs环境变量
    直接命令行执行phantom_script.js即可【phantomjs phantom_script.js】

  • phantom.php

php 复制代码
<?php
// 引入并执行 PhantomJS 脚本
$phantomScript = './phantom_script.js';
$command = 'phantomjs ' . $phantomScript;
$output = shell_exec($command);

echo 'Screenshot saved at: ' . trim($output);
  • phantom_script.js
javascript 复制代码
var page = require('webpage').create();
page.viewportSize = { width: 900, height: 600 };

var url = 'https://www.kancloud.cn/manual/thinkphp6_0/1037479';  // 替换为您的URL

var timestamp = new Date().getTime();
var savePath = './phantomimg/'+timestamp+'.png';  // 保存截图的路径

function takeScreenshot() {
    page.open(url, function(status) {
        if (status === 'success') {
            // 在页面加载完成后,等待一段时间以确保动态数据(如echarts 图表)渲染完全
            setTimeout(function() {
                page.render(savePath);
                console.log(savePath);
                phantom.exit();
            }, 2000);  // 设置等待时间,单位为毫秒(根据网页数据加载时间参考等待时间)
        } else {
            console.log('Unable to load the page.');
            phantom.exit();
        }
    });
}

takeScreenshot()
相关推荐
装疯迷窍_A12 天前
ARCGIS国土超级工具集1.6更新说明
arcgis·插件·尖锐角·电子报盘·批量分割矢量
有梦想的攻城狮1 个月前
maven中的maven-antrun-plugin插件详解
java·maven·插件·antrun
WispX8881 个月前
【设计模式】门面/外观模式
java·开发语言·设计模式·系统架构·外观模式·插件·架构设计
有梦想的攻城狮1 个月前
maven中的maven-resources-plugin插件详解
java·maven·插件·maven插件·maven-resources
胡斌附体1 个月前
vue组件和插件的区别
vue.js·组件·插件·vue.component·vue.use
木鱼show1 个月前
Flask集成Selenium实现网页截图
selenium·flask·网页截图
君莫愁。1 个月前
【Unity】DOTween的常用函数解释
unity·c#·游戏引擎·插件·dotween
帆张芳显2 个月前
前端EXCEL插件,智表ZCELL产品V3.0 版本发布,底层采用canvas全部重构,功能大幅扩展,性能极致提升,满足千万级单元格加载
前端·重构·excel·jquery·插件·智表
机构师2 个月前
<uniapp><插件><UTS>在uniapp中,创建自己的插件并发布到uni插件市场
javascript·uni-app·vue·插件·hbuilderx·uni
亿坊电商2 个月前
开源CMS系统的SEO优化功能主要依赖哪些插件?
开源·cms·插件