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()
相关推荐
microrain1 天前
SagooIoT 把协议解析和消息通知都放进了独立进程
物联网·golang·插件·sagooiot
李纲明1 天前
WordPress 报 Allowed memory size exhausted:先抓堆栈找吃内存的插件,再改 memory_limit
性能优化·php·内存·插件·wordpress·devdiy
死磕音视频9 天前
ChatGPT 应用与插件入门:连接 Google Drive 并在对话中调用
chatgpt·插件·办公效率·应用连接
小锋学长生活大爆炸10 天前
【插件】像素风桌宠与Claude Code状态监控的完美结合 | Claude-Desktop-Pet
claude·插件·桌宠
ProcessOn官方账号11 天前
ProcessOn Office 插件上线:在 Word / Excel / PPT 里直接画流程图
word·excel·插件·office·processon
青柠之夏cc18 天前
YCM插件与Vim9.1.0496+兼容性问题解析
插件·版本·兼容
我才是银古19 天前
DeepSeek Harness 插件生态解析
插件·deepseek·dsh
mont evergreen21 天前
RTMP 里的那根“连接线”:读一份 NetConnection 源码
插件·rtmp·源码解读
DolphinDB智臾科技1 个月前
告别繁琐解析!BinaryTcp 模块实现沪深 Level‑1 行情接收‑解析‑落库一站式能力
数据库·插件·dolphindb