我如何用PhantomJS渲染网站:(例如)
var page=require('webpage').create();
var ur ='http://www.sd.gov/';
function kk(){page.open(ur, function (status) {
this.s = function(){
var p = page.evaluate(function () {
return document.getElementById('exampleHeader1').style.getPropertyValue("background-image").replace(/^(url)\(|\)/g,'');
});
return p;
}
return s();
phantom.exit();
});
};
答案 0 :(得分:1)
Phantomjs允许您使用WebPage.Render将网页呈现给文件。这将呈现webpage.clipRect指定的整个页面或矩形 要呈现网站的一部分(HTMl元素),您可以使用element.getBoundingClientRect:这将给出HTML元素的边界框。
可能的脚本是
var page = require('webpage').create();
page.viewportSize = { width: 1600, height: 1200 };
var getElementBounds = function (elementId) {
return page.evaluate(function (id) {
var clipRect = document.getElementById(id).getBoundingClientRect();
return {
top: clipRect.top,
left: clipRect.left,
width: clipRect.width,
height: clipRect.height
};
}, elementId);
}
var url = 'http://www.sd.gov/';
page.open(url, function (status) {
setTimeout(function () {
var clipRect = getElementBounds('exampleHeader1');
page.clipRect = clipRect;
page.render('header.png');
phantom.exit();
}, 1000);
});