检查/记录PhantomJS / CasperJS使用的带宽

时间:2013-01-03 17:01:05

标签: javascript screen-scraping web-scraping phantomjs casperjs

是否可以检查/记录每次运行PhantomJs / CasperJS时传输的数据量?

Phantom / Casper的每个实例都分配了一个instance_id(通过旋转实例的PHP函数)。运行完成后,传输的数据量和instance_id必须通过生成实例的PHP函数插入MySQL数据库。这样就可以记录各个phantomjs运行的带宽利用率。

可以运行许多幻像/ casper实例,每个实例持续一两分钟。

1 个答案:

答案 0 :(得分:3)

尝试捕获数据时最简单,最准确的方法是使收集器和发射器尽可能接近。在这种情况下,如果phantomjs可以捕获您需要的数据并将其发送回PHP函数以将其与instance_id相关联并进行数据库交互,那将是理想的选择。事实证明它可以(至少部分地)。

这是一种方法:

var page = require('webpage').create();
var bytesReceived = 0;

page.onResourceReceived = function (res) {
    if (res.bodySize) {
        bytesReceived += res.bodySize;
    }
};

page.open("http://www.google.com", function (status) {
    console.log(bytesReceived);
    phantom.exit();
});

它捕获所有检索到的资源的大小,将它们相加,然后将结果吐出到标准输出,PHP代码可以在其中使用它。这不包括标题或任何POST活动的大小。根据您的应用,这可能就足够了。如果没有,那么希望这会给你一个很好的跳跃点。