PhantomJs在加载一个页面时使用多个TCP连接

时间:2013-12-18 12:32:19

标签: javascript node.js phantomjs web-crawler

我使用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而发生?任何解决方案?

1 个答案:

答案 0 :(得分:3)

这听起来很正常。

PhantomJS支持HTTP keep-alive(持久HTTP连接),并默认启用它。 它可能只是为每个服务器打开2个(或更少)连接(因为它应该根据规范),这就是你所看到的。

要想看看没有保持活力的情况,请尝试:

page.customHeaders = { 'Connection': 'close' };