我想要进行屏幕截图,但页面没有完全加载。我测试了其他网址没有问题但是我不能用这个网址。 我使用phantomjs-2.1.1-windows。 在链接下你可以看到它: http://www.irmood.com/twitter-1.png 我检查了page.onError没有错误
var webpage = require('webpage').create();
webpage.viewportSize = { width: 1280, height: 800 };
webpage.scrollPosition = { top: 0, left: 0 };
webpage.open('https://www.bershka.com/tr/en/woman/shoes/view-all-c1010224033.html', function(status) {
if (status === 'fail') {
console.error('webpage did not open successfully');
phantom.exit(1);
}
var i = 0,
top,
queryFn = function() {
return document.body.scrollHeight;
};
setInterval(function() {
var filename = 'twitter-' + (++i) + '.png';
console.log('Writing ' + filename + '...');
webpage.render(filename);
top = webpage.evaluate(queryFn);
console.log('[' + i + '] top = ' + top);
webpage.scrollPosition = { top: top + 1, left: 0 };
if (i >= 5) {
phantom.exit();
}
}, 3000);
});
答案 0 :(得分:0)
一些网页如bershka.com在加载DOM后使用XHR加载html块。 Phantom在DOM加载状态下捕获了网页,它错过了其余的http请求,因为它不再执行JS了。
在您的代码中,每隔3秒就会截取一次屏幕截图。你看到twitter- [2~5] .png图片与twitter-1.png相比有什么变化吗?