22

Phantom.JS を使用して、個々の HTML 要素を PNG にレンダリングしたいと考えています。これが可能かどうか誰にもわかりますか?また、Phantom.js を使用して、ユーザーが既に見ているページをレンダリングするにはどうすればよいでしょうか?

4

5 に答える 5

50

ページの一部のみをレンダリングするには、ページの clipRect 属性を設定してレンダリングする必要があります。

var clipRect = document.querySelector(selector).getBoundingClientRect();
page.clipRect = {
    top:    clipRect.top,
    left:   clipRect.left,
    width:  clipRect.width,
    height: clipRect.height
};
page.render('capture.png');

あなたの質問の2番目の部分がわかりません。Phantom.js はヘッドレスです。つまり、ユーザーが見ている実際のディスプレイはありません。

于 2012-08-11T19:43:40.700 に答える
5

PhantomJS に基づく別のプロジェクトである CasperJS を使用できます。

casper.start('http://www.weather.com/', function() {
    this.captureSelector('weather.png', '#wx-main');
});

casper.run();
于 2014-05-08T14:24:31.327 に答える
-5

私は同じ必要性を持っていました、私はこれを試しました、そしてそれは私のためにうまくいきました:

http://wwwURLの を忘れないでください

var page = require('webpage').create();
page.open('YourPageURL', function (status) {

if (status !== 'success') {
    console.log('Network Problem');
} else {
    var p = page.evaluate(function () {
        return document.getElementById('yourDivID').innerHTML
    });
    console.log(p);
}
phantom.exit();
});
于 2013-03-19T21:53:20.443 に答える