Проверить/записать, сколько пропускной способности использовал PhantomJS/CasperJS

Можно ли проверить/зарегистрировать, сколько данных было передано во время каждого запуска PhantomJs/CasperJS?

Каждому экземпляру Phantom/Casper присвоено значение instance_id (функция PHP, которая запустила экземпляр). После завершения выполнения количество переданных данных и instance_id должны будут пройти путь для вставки в базу данных MySQL, возможно, через функцию PHP, которая породила экземпляр. Таким образом, можно регистрировать использование пропускной способности отдельных запусков phantomjs.

Может быть запущено много экземпляров фантома/каспера, каждый из которых длится минуту или две.


person Nyxynyx    schedule 03.01.2013    source источник
comment
кажется полезным: google.com/   -  person goat    schedule 03.01.2013


Ответы (1)


Самый простой и точный подход при сборе данных — расположить коллектор и эмиттер как можно ближе. В этом случае было бы идеально, если бы 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. В зависимости от вашего приложения этого может быть достаточно. Если нет, то, надеюсь, это даст вам хорошую отправную точку.

person Dave Snigier    schedule 26.01.2013
comment
Это не дает и не может точно суммировать передаваемый размер, поскольку сжатие gzip не учитывается. - person Artjom B.; 05.08.2014