繁体   English   中英

phantomjs不呈现页面

[英]phantomjs doesn't render a page

我今天在许多网站上做了一些研究,为了避免手动查看它们,我准备了phantomjs来使用这里提出的解决方案来渲染它们。 没什么特别的。 循环遍历网站数组并呈现所有生成的页面。

有些奇怪的是,有些网站没有正确呈现。 其中,我有这个: http//www.telegraaf.nl/

为了简化,我创建了另一个只运行此页面的脚本:

var page = require('webpage').create();

page.viewportSize = { width: 1920, height: 960 };
page.clipRect = { top: 0, left: 0, width: 1920, height: 960 };

page.open('http://www.telegraaf.nl/', function(status) {
  page.render("screenshot.png");
  phantom.exit();
});

它没有截图结束。 与任何其他人一起测试,并且完美地工作。 我忽略了什么吗?

它不会呈现屏幕截图,因为页面最初没有<body> ,因此无法呈现。 在PhantomJS的onLoadFinished事件触发后,所有内容(包括正文)都通过JavaScript加载。

您需要等待一整页加载。 一个简单的5秒等待对我来说已经足够了:

page.open('http://www.telegraaf.nl/', function(status) {
    setTimeout(function(){
        page.render("screenshot.png");
        phantom.exit();
    }, 5000);
});

您当然可以以更花哨的方式等待,以使其更强大,而不是等待太久: phantomjs不等待“完整”页面加载


您可能需要使用--ignore-ssl-errors=true运行PhantomJS(如果PhantomJS <1.9.8,则可能需要--ssl-protocol=any )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM