2013-01-03 26 views
5

Her PhantomJs/CasperJS çalışması sırasında ne kadar veri aktarıldığını kontrol etmek/log etmek mümkün mü?Ne kadar bant genişliği kullanılır PhantomJS/CasperJS

Her bir Phantom/Casper örneğinin kendisine atanan bir instance_id vardır (örneği döndüren PHP işleviyle). Çalışma bittikten sonra, aktarılan veri miktarı ve instance_id, bir MySQL veritabanına eklenmesini, muhtemelen örneği ortaya çıkaran PHP fonksiyonu aracılığıyla yapmak zorunda kalacak. Bu şekilde bireysel phantomjs işlemlerinin bant genişliği kullanımı kaydedilebilir.

Her biri bir veya iki dakika süren çok sayıda hayalet/casper örneği olabilir.

+0

verimli görünüyor: http://www.google.com/?q=linux%20monitor%20network%20traffic%20per%20process – goat

cevap

3

Verileri yakalamaya çalışırken en kolay ve en doğru yaklaşım, toplayıcıyı ve yayıcıyı olabildiğince yakınlaştırmaktır. Bu durumda, phantomjs'ın ihtiyacınız olan verileri yakalayıp PHP işlevine geri göndererek instance_id ile ilişkilendirmesi ve veritabanı etkileşimini gerçekleştirmesi ideal olacaktır. Olabilir (en azından kısmen). Bu, alınan tüm kaynakların büyüklüğünü yakalar onları ekler ve PHP kodu onunla çalışabilen sonuçları standart çıktıya tükürür

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

:

İşte bir yaklaşımdır. Bu, başlıkların boyutunu veya herhangi bir POST etkinliğini içermez. Başvurunuza bağlı olarak, bu yeterli olabilir. Eğer değilse, umarım bu size iyi bir atlama noktası verir.

+1

Bu, gzip sıkıştırması sayılmadığından aktarılan boyutu tam olarak özetleyemez ve özetleyemez. –

İlgili konular