使用PhantomJS交易视图图表的屏幕截图

时间:2019-03-09 10:48:56

标签: javascript phantomjs tradingview-api

我正在尝试在服务器上呈现“交易视图”图表小部件的屏幕截图,类似于以下内容:

https://jsfiddle.net/exatjd8w/

我对PhantomJS不太熟悉,但是尝试了几种方法来加载图表,最后一次尝试使用以下代码:

var page = require('webpage').create();
page.open('https://mywebsite.com/chart', 
    function(status) {

        console.log("Status: " + status);

        if (status === "success") {
            page.includeJs('https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js', function() {
                (page.evaluate(function() {
                  // jQuery is loaded, now manipulate the DOM
                      console.log('Status: jQuery is loaded, now manipulate the DOM');
                       var date = new Date(),
                           time = date.getTime()
                       $('#main-widget-frame-container iframe').on('load', function() {
                          console.log('iframe loaded, now take snapshot')
                          page.render('screenshot_' + time + '.png')
                       })
                }))
            })
        }
    }
);

不幸的是,由于上述代码永远运行而没有结果,因此仍然无法正确执行操作。

有什么想法,建议吗?

先谢谢您。

1 个答案:

答案 0 :(得分:0)

PhantomJS不再被维护,并且存在一些可能导致此问题的问题。 我建议切换到Puppeteer,该API具有非常好的API,在底层使用Google Chrome(无头),并由chrome小组积极维护:

https://github.com/GoogleChrome/puppeteer