在我的浏览器中用类似ctrl+s的PhantomJS保存一个网站
Save a website with PhantomJS like ctrl+s in my browser
我正在尝试保存一个网站,稍后我想在Nginx上使用它。
我可以成功地page.render创建网站的图像,它看起来很好,但我不需要这种方式的内容。
我试着写fs.write("index.html",page.content,'w')
它生成了一个几乎很好的带有图像的HTML文件,但它看起来真的很糟糕,我相信问题是,它依赖于javascript、css和其他文件。(它还提供了很多404文件)
如果我ctrl+s使用chrome的网站,并将所有文件上传到Nginx,它的工作方式正是我需要的。但我需要定期自动发生这种情况,所以我想使用PhantomJS(或者如果PhantomJS上不可能的话,可以使用替代方案)
顺便说一句,我尝试了wget -m URL
,但它也不起作用。
这是适用于屏幕截图的PhantonJS脚本:
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);
}
});
}
PhantomJS并不是最好的工具,因为你无论如何都需要修复下载的css、js和html图像文件的路径(Chrome在保存页面时会这样做)。
我建议这个wget的用法:
wget -E -H -k -K -p -nd -o log.txt http://example.com/page/
这将下载目标页面及其资源文件,并将其保存到当前目录中,重写html,使其正确链接到这些文件。
相关文章:
- 为所有查看网站的用户保存变量
- 如何从重定向的支付处理器网站提取交易详细信息并保存到我的rails 4数据库
- 在我的浏览器中用类似ctrl+s的PhantomJS保存一个网站
- 如何使用文本框在网站上保存更改
- 将多个画布保存为一个图像(使网站像PicFrame一样)
- 使用ImageMagick生成图像而不保存到文件,但仍在网站上显示
- 允许用户键入html标签并将其保存到文件中以在网站上显示
- 单击指向外部网站的链接后,通过MySQL保存数据
- 递归保存网站
- 如何在网站上实现一个按钮,允许用户将生成的数组数据保存为ASCII文件
- JavaScript:使用网站的 HTML 文档保存/加载 Cookie
- 浏览器保存了我的JavaScript函数名称并错误了我的网站
- wordpress网站页面上的Javascript在我尝试保存它时立即消失
- 如何将图像从网站保存到手机相册
- 保存JavaScript Cookie网站基础,而不是ASPX页面明智
- 允许手机用户在不使用应用程序的情况下将文件从我的网站保存到他们的手机存储中
- 阻止从网站保存图像(保存整个页面)
- 我如何允许用户将文件上传到我的网站,编辑并保存回
- 从网站保存嵌入的pdf
- 多语言网站-是否只有通过保存多语言文件或数据库才能实现