使用Phantom和node,将网页变成图片,放在函数里无效

发布于 2022-09-12 03:59:21 字数 2237 浏览 27 评论 0

在utils文件里有phantom.js和capture.js两个文件phantom.js
我调用/send接口,希望执行phantom.js里面的功能,
但是没有效果,请问是什么原因?

const spawn = require('child_process').spawn;

let Phantom = {
    createImage: ()=> {
        // 捕获标准输出并将其打印到控制台

        return new Promise(function (resolve, reject) {
            const process = spawn('phantomjs',[ __dirname + '/capture.js']);
            // console.log(processor.cwd());

            process.stdout.on('data', function (data) {
                console.log('标准输出:\n' + data);
                resolve(data);
            });

// 捕获标准错误输出并将其打印到控制台
            process.stderr.on('data', function (data) {
                console.log('标准错误输出:\n' + data);
            });

// 注册子进程关闭事件
            process.on('exit', function (code, signal) {
                console.log('子进程已退出,代码:' + code);
            });
        });
    },
};

module.exports = Phantom;

capture.js

var page=require('webpage').create();//创建一个网页对象;
var system=require('system');
var address,fileName;
// page.viewportSize={width:1024,height:800};//设置窗口的大小为1024*800;
// page.clipRect={top:0,left:0,width:1024,height:800};//截取从{0,0}为起点的1024*800大小的图像;
// //禁止Javascript,允许图片载入;
// // 并将userAgent改为"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) PhantomJS/19.0";
// page.settings={
//     javascriptEnabled: false,
//     loadImages: true,
//     userAgent: 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) PhantomJS/19.0'
// };


var page = require('webpage').create();
page.open('https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&word=phantom+open', function() {
    page.render('baidu.png');
    phantom.exit();
});

在另外的routes文件夹里有poster.js

/**
 * 租房信息
 */
const app = require('express').Router();
const db = require('../../modules/database');
const helper = require('../../utils/helper');
const config = require('../../modules/configuration');
const phantom = require('../../modules/utils/phantom');

/**
 * 更新租房信息
 */
app.all('/send', (req, res) => {
    
    let returnResult = {};


    phantom.createImage().then(data=>{
        console.log(data)
    });



});

module.exports=app;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文