在我的浏览器中保存一个像ctrl + s这样的PhantomJS网站

时间:2016-05-01 02:16:30

标签: javascript html css nginx phantomjs

我正在尝试保存一个我以后想要在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);
    }
  });
}

1 个答案:

答案 0 :(得分:0)

PhantomJS并不是最好的工具,因为你无论如何都需要修复html中下载的css,js,图像文件的路径(Chrome在保存页面时会这样做)。

我建议使用这个wget:

action

这将下载包含其资源文件的目标页面并将其保存到当前目录中,重写html以便正确链接到这些文件。