Kor*_*lis 3 javascript phantomjs
我今天在许多网站上做了一些研究,为了避免手动查看它们,我准备了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();
});
Run Code Online (Sandbox Code Playgroud)
它没有截图结束.与任何其他人一起测试,并且完美地工作.我忽略了什么吗?
它不会呈现屏幕截图,因为页面<body>最初没有,因此无需呈现.在PhantomJS的onLoadFinished事件触发后,所有内容(包括正文)都通过JavaScript加载.
您需要等待一整页加载.一个简单的5秒等待对我来说已经足够了:
page.open('http://www.telegraaf.nl/', function(status) {
setTimeout(function(){
page.render("screenshot.png");
phantom.exit();
}, 5000);
});
Run Code Online (Sandbox Code Playgroud)
您当然可以以更花哨的方式等待,以使其更强大,而不是等待太久:phantomjs不等待"完整"页面加载
您可能需要运行PhantomJS --ignore-ssl-errors=true(并且可能--ssl-protocol=any如果PhantomJS <1.9.8).
| 归档时间: |
|
| 查看次数: |
4895 次 |
| 最近记录: |