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

在PhantomJs / CasperJS的每次运行过程中是否可以检查/记录有多少数据已被传输?

Phantom / Casper的每个实例都有一个instance_id分配给它(通过启动实例的PHP函数)。 运行结束后,传输的数据量和instance_id将不得不通过生成实例的PHP函数插入到MySQL数据库中。 这样可以记录单个phantomjs运行的带宽利用率。

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


尝试捕获数据时最简单和最准确的方法是尽可能使收集器和发射器尽可能靠近。 在这种情况下,如果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活动的大小。 根据您的应用程序,这可能就够了。 如果没有,那么希望这会给你一个很好的起点。

链接地址: http://www.djcxy.com/p/73477.html

上一篇: Check/Log how much bandwidth PhantomJS/CasperJS used

下一篇: Casperjs/PhantomJs vs Selenium