我使用PhantomJs抓取一些网站,发现它在加载一个页面时打开了几个TCP连接。例如,以下是我的try.js:
var args = require('system').args;
var page = require('webpage').create();
var url = args[1];
page.open(url, function(status) {
var title = page.evaluate(function() {
return document.title;
});
console.log('Page title is ' + title);
//page.close();
});
我试过
phantomjs try.js http://www.google.com
并发现它使用了4个连接。我知道调用“page.close()”会关闭所有连接。但是,如果我使用许多phantomjs进程,这样的问题仍可能导致大量并发连接。这是否因为PhantomJs不使用持久性HTTP而发生?任何解决方案?
答案 0 :(得分:3)
这听起来很正常。
PhantomJS支持HTTP keep-alive(持久HTTP连接),并默认启用它。 它可能只是为每个服务器打开2个(或更少)连接(因为它应该根据规范),这就是你所看到的。
要想看看没有保持活力的情况,请尝试:
page.customHeaders = { 'Connection': 'close' };