检查/记录 PhantomJS/CasperJS 使用了多少带宽

问题描述 投票:0回答:1

是否可以检查/记录每次运行 PhantomJs/CasperJS 期间传输了多少数据?

Phantom/Casper 的每个实例都有一个分配给它的

instance_id
(通过启动实例的 PHP 函数)。运行完成后,传输的数据量和
instance_id
必须插入到 MySQL 数据库中,可能是通过生成实例的 PHP 函数。这样可以记录各个 phantomjs 运行的带宽利用率。

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

javascript web-scraping phantomjs casperjs
1个回答
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 活动的大小。根据您的应用程序,这可能就足够了。如果没有,那么希望这能为您提供一个很好的起点。

© www.soinside.com 2019 - 2024. All rights reserved.