我正在尝试保存一个我以后想要在Nginx上使用它的网站。
我可以成功 page.render 来创建网站的图片,看起来不错,但我不需要这样的内容。
我尝试过fs.write(“index.html”,page.content,'w')
哪个生成了一个带有图像的差不多好的HTML文件,但它看起来真的很偏,我相信问题是,它取决于javascripts,css和其他文件。 (它还在文件上提供了很多404)
如果我 ctrl + s 网站使用 chrome ,并将所有文件上传到Nginx,它的工作方式与我需要的完全一致。 但是我需要定期自动发生这种情况,所以我想使用PhantomJS(或者如果在PhantomJS上无法使用它的话)
作为旁注,我尝试了wget -m URL
,但它也没有用。
这是用于截图的PhantonJS-Script:
function capture(sizes, callback) {
var page = require('webpage').create();
page.viewportSize = {width: sizes[0], height: height};
//page.zoomFactor = 1;
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
} else {
page.scrollPosition = {
top: 100,
left: 0
};
window.setTimeout(function () {
console.log("Generating:" + sizes[0]);
var filename = output + "_" + sizes[0];
page.render(filename + '.jpeg', {format: 'jpeg', quality: qual});
page.close();
callback.apply();
}, 5000);
}
});
}
答案 0 :(得分:0)
PhantomJS并不是最好的工具,因为你无论如何都需要修复html中下载的css,js,图像文件的路径(Chrome在保存页面时会这样做)。
我建议使用这个wget:
action
这将下载包含其资源文件的目标页面并将其保存到当前目录中,重写html以便正确链接到这些文件。