我是PhantomJS
的新手并使用最基本的代码:获取Google网页并捕获屏幕截图。
我尝试提取的网址是:https://www.google.com/#tbm=lcl&q=starbucks
如果您在真实浏览器中打开它,您会看到它如下所示:
但是我的PhantomJS看到了这个:
起初,我认为异步网页内容加载速度太慢,所以我设法等待很多秒然后捕获屏幕,但我看到PhantomJS仍无法获取内容。
这是我的代码段:
var page = require('webpage').create();
page.settings.userAgent = 'Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36';
page.viewportSize = { width: 1280, height: 800 };
page.open('https://www.google.com/#tbm=lcl&q=starbucks', function() {
setTimeout(function(){
page.render('screenshot_failed.png');
phantom.exit();
}, 5000);
});
请指出我在获取此网页时可能会遗漏的内容。谢谢!
答案 0 :(得分:0)
除了您已经拥有的所有代码之外,请尝试在打开的回调中强制页面达到您想要的大小:
var width = 1280;
var height = 800;
var webpage = require('webpage');
page.open('https://www.google.com/#tbm=lcl&q=starbucks', function(status) {
page.evaluate(function(w, h) {
document.body.style.width = w + "px";
document.body.style.height = h + "px";
}, width, height);
page.clipRect = {top: 0, left: 0, width: width, height: height};
page.render('screenshot_failed.png');
});