【发布时间】:2017-12-07 12:24:43
【问题描述】:
当我尝试通过 Puppeteer 在 Headless chrome 中打开页面时,与 Full Chrome 相比,它需要很多时间。 我正在尝试在 1366*768 视口中打开普通网站以截取他们的屏幕截图,但在 Headless Chrome 中打开普通页面需要很长时间。 下面是我的测试结果,我使用 headless:true 和 headless:false 标志打开 10 个网址
Headless:False(全铬)
- google.com: 14279.508ms
- hacks.mozilla.org: 16213.428ms
- apple.com: 17465.563ms
- gmail.com: 18820.810ms
- dell.com: 19853.047ms
- snapdeal.com: 20722.319ms
- flipkart.com: 22994.769ms
- microsoft.com: 23404.095ms
- hp.com: 23963.416ms
- amazon.com: 27175.416ms
Headless:true (Headless Chrome)
- google.com: 157191.829ms
- gmail.com: 159343.018ms
- snapdeal.com: 309226.297ms
- hacks.mozilla.org: 337393.393ms
- microsoft.com: 369301.073ms
- dell.com: 397798.479ms
- apple.com: 398685.341ms
- flipkart.com: 576905.928ms
- hp.com: 1118683.968ms
- amazon.com: 2372061.166ms
重现步骤:
- 通过设置 headless:true 和 headless:false 标志在 Headless Chrome 和 Full Chrome 中执行以下脚本。
- 两种方法之间的时间差很大,在 Headless Chrome 中它看起来像是卡了一段时间。
操作系统配置
Windows 7 Puppeteer 版本 0.13.0 I7 16GB 内存
代码:
var puppeteer = require('puppeteer');
async function capture(url) {
//console.log(url +': Started');
console.time(url);
const browser = await puppeteer.launch({headless:true});
const page = await browser.newPage();
page.setViewport({ width: 1366, height: 768 });
await page.goto('http://'+url, { waitUntil: 'networkidle2', timeout: 3000000
});
await page.screenshot({path: url+'.jpg',fullPage: true});
browser.close();
console.timeEnd(url);
}
capture('hacks.mozilla.org');
capture('google.com');
capture('amazon.com');
capture('flipkart.com');
capture('snapdeal.com');
capture('dell.com');
capture('gmail.com');
capture('apple.com');
capture('microsoft.com');
capture('hp.com');
如果我遗漏了什么或者我们如何解决这个问题,请告诉我。
【问题讨论】:
标签: google-chrome headless-browser puppeteer google-chrome-headless