2013-04-07 18 views
7

Wenn ich versuchte curl www.yelp.com dauert es 1,1 Sekunden. Das Abrufen der Seite mit CasperJS dauert jedoch über eine Minute!CasperJS/PhantomJS viel langsamer als Curl

Ist das normal? Wie finde ich heraus, was Casper/Phantom verlangsamt? Ich vermute seine HTTP-Weiterleitungen, die Casper nicht folgt?

var casper = require('casper').create(); 
var url = 'http://www.yelp.com'; 

casper.start(url); 
casper.then(function() { 
    console.log( this.getHTML()); 
    this.exit(); 
}); 

casper.run(); 

enter image description here

Antwort

3

Sind Sie auf Windows? Wenn ja, liegt ein mysteriöses Netzwerkproblem vor, wenn der automatische Proxy verwendet wird. Weitere Informationen finden Sie in den Versionshinweisen: http://phantomjs.org/release-1.9.html.

Versuchen Sie im Allgemeinen, die Netzwerkanforderungen und -antworten zu analysieren. Eine sehr einfache Möglichkeit, den Netzwerkverkehr verfolgen:

page.onResourceRequested = function (request) { 
    console.log('Request ' + JSON.stringify(request, undefined, 4)); 
}; 
page.onResourceReceived = function (response) { 
    console.log('Receive ' + JSON.stringify(response, undefined, 4)); 
}; 

Sie müssen es weiter optimieren, wenn Sie das Timing usw. Lesen Sie mögen die Dokumentation zu diesen Network Monitoring Funktionen.

+0

Danke für die Einsicht. Ich habe die Quest mit der HAR-Ausgabe von netsniff.js aktualisiert. Scheint so, als ob die ersten 2 .js-Dateien, die 30 Sekunden dauern, von Google stammen, und die 3.js-Datei ist jQuery.min.js, gehostet von GoogleCDN. Irgendwelche Ideen, warum diese .js-Dateien so langsam sind? – Nyxynyx

+0

Das erfordert wahrscheinlich das Öffnen einer anderen Frage: Kann PhantomJS diese gemeinsamen js-Dateien zwischenspeichern und sie mit zukünftigen Phantom-Instanzen teilen, die ausgeführt werden? – Nyxynyx

+0

Haben Sie es mehrmals ausgeführt? Wenn jedes Mal es immer so langsam wie 30 Sekunden ist, fürchte ich, dass nur ein Low-Level-Netzwerk-Tracing (z. B. Wireshark) einige Hinweise aufdecken wird. –

Verwandte Themen