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()
相关推荐
jonyleek10 天前
【JVS更新日志】物联网、动态首页插件、在线白板插件4.15更新说明!
物联网·插件·物联网平台·jvs·更新日志·动态首页·白板插件
七夜zippoe11 天前
DolphinDB开发环境:GUI与API工具
api·gui·插件·开发环境·dolphindb
xiaobobo333022 天前
vscode的if结尾提示插件“If End Marker”实现了if结尾提示功能
vscode·插件·if结尾提示·if end marker
sleeper0125 天前
War3 Replay Overlay 技术实现原理
插件·war3·魔兽争霸3·replay
sam.li1 个月前
GhidraMCP 原理与使用部署
ai·逆向·插件·mcp·ghidra
sqmw1 个月前
MFCMouseEffect:把桌面输入反馈这件事,做成一个真正可扩展的引擎
c++·插件·引擎·鼠标特效·键鼠指示·鼠标伴宠
l1t1 个月前
DeepSeek总结的用 C# 构建 DuckDB 插件说明
前端·数据库·c#·插件·duckdb
海兰1 个月前
【原理】OpenClaw插件系统深度解析
人工智能·插件·skill·openclaw
装疯迷窍_A1 个月前
ArcGISPro国土超级工具集简介
插件·arcgispro·变更调查·尖锐角·举证照片
bu_shuo1 个月前
在Edge浏览器中安装Google Chrome扩展
chrome·edge·插件