2013-01-03 15 views
5

È possibile controllare/registrare la quantità di dati trasferiti durante ogni esecuzione di PhantomJs/CasperJS?Verifica/Registra la quantità di banda utilizzata da PhantomJS/CasperJS

Ad ogni istanza di Phantom/Casper è assegnato un instance_id (dalla funzione PHP che ha attivato l'istanza). Al termine dell'esecuzione, la quantità di dati trasferiti e il instance_id dovranno essere inseriti in un database MySQL, possibilmente tramite la funzione PHP che ha generato l'istanza. In questo modo è possibile registrare l'utilizzo della larghezza di banda delle singole esecuzioni di phantomjs.

Possono esserci molte istanze fantasma/casper in esecuzione, ciascuna della durata di un minuto o due.

+0

sembra fruttuoso: http://www.google.com/?q=linux%20monitor%20network%20traffic%20per%20processo – goat

risposta

3

L'approccio più semplice e accurato quando si tenta di acquisire dati è quello di ottenere il collettore e l'emettitore il più vicino possibile. In questo caso sarebbe ideale se phantomjs potesse acquisire i dati di cui hai bisogno e inviarlo alla tua funzione PHP per associarli a instance_id e fare l'interazione con il database. Risulta che può (almeno parzialmente).

Ecco un approccio:

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(); 
}); 

Questa cattura le dimensioni di tutte le risorse recuperate, li aggiunge, e sputa fuori il risultato sullo standard output in cui il vostro codice PHP è in grado di lavorare con esso. Questo non include la dimensione delle intestazioni o qualsiasi attività POST. A seconda dell'applicazione, potrebbe essere sufficiente. Se no, allora spero che questo ti dia un buon punto di partenza.

+1

Questo non riassume e non può riassumere accuratamente la dimensione trasferita, poiché la compressione gzip non viene conteggiata. –

Problemi correlati