我一直在学习phantomjs是如何工作的,并且在某些时候我发现使用page.open
方法加载给定的URL需要更多的时间。
在深入研究这个问题的解决方案之后,我发现使用Accept-Encoding: gzip, deflate
标题可以将加载速度提高3-8倍。
现在的问题是phantomjs默认无法处理gzip编码的内容,或者我可能不知道如何正确配置以支持gzip编码(我尝试在两种情况下都使用屏幕截图;使用和不使用gzip编码,但使用gzip编码,我得到了许多符号和特殊字符的奇怪图像)
当我使用cURL
或file_get_contents
时,它会比同一网址的phantomj更快。
现在我的问题是:
这是我的代码:
var page = require("webpage").create();
page.viewportSize = {
width: 1024,
height: 768
};
var start = Date.now();
page.customHeaders = {
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
'Accept-charset': 'utf-8'
};
page.open('http://facebook.com', function() {
console.log('PhantomJS load time:', Date.now() - start);
page.render('screenshot.png');
phantom.exit();
});