我正在使用以下代码: var width = 1024; var height = 768;
I am using this code: var width = 1024; var height = 768;
和page.viewportSize = {width:width,height:height};我在page.open之前使用.但这是行不通的. 您可以在这里查看我的另一个问题的完整代码- 在PhantomJS中建立引荐标头是不能的不起作用
and page.viewportSize = {width: width, height: height}; im using before page.open . But this doesn't work. The full code you can watch in my another question right here - Faking the Referer Header in PhantomJS is doesn't work
下面是代码:
var width = 1024; var height = 768; var page = require('webpage').create(); //referal massive var reff = ["www.facebook/messages/t/","google","youtube","twitter/"]; //random massive var randreff = Math.floor(Math.random() * (reff.length)); //reffer page.customHeaders = { "Referer": (reff[randreff]) }; //console refer console.log(reff[randreff]); var urls = ['test/','test/2017/02/blog-post.html','test/']; var i = 0; function OpenPage(){ setTimeout(function(){ page.open(urls[i], function(status) { if (status == 'success') { page.viewportSize = {width: width, height: height}; page.render('example' + i + '.png'); } i++; if(i <= urls.length - 1){ OpenPage(); }else{ phantom.exit(); } }); },5000); } OpenPage();
- 解决方案无效,引荐无效=( 推荐答案
page.render()呈现整个页面,而不考虑视口大小,这是正常的行为...您需要的是page.clipRect() ...类似于:
page.render() renders whole page regardless of viewport size, it's normal behaviour ... what you need is page.clipRect()... something like:
page.viewportSize = {width: width, height: height};以上内容应在page.open()之前定义-告诉页面以类似于窗口具有给定大小的方式呈现
The above should be defined before page.open() - tells a page to render the way like the window would be of given size
要渲染给定尺寸的图像,您需要:
To render image of given size, you need to:
page.clipRect = { top: 0, left: 0, height: viewportSize.height, width: viewportSize.width }; page.render(...);更多推荐
PhantomJs不会调整窗口大小
发布评论