injectJs mit PhantomJs und CasperJs

9

Ich versuche CasperJS zu verwenden, um eine Website mit dynamischen Inhalten zu scrappen, die bisher fehlgeschlagen ist. Die Website verwendet einige js-Bibliotheken (z. B. Prototyp), um die automatische Vervollständigung zum Erstellen von Inhalten zu verwenden. Ich versuche daher, einige Werte einzufügen und Ereignisse auszulösen, um die Erstellung des Inhalts zu verhindern. Einfügen und Auslösen von Ereignissen funktioniert gut, aber kein Inhalt erstellt.

Ich bin neu bei CasperJS und habe festgestellt, dass es Probleme mit relativen Pfaden zu den Bibliotheken gibt. Ich vermute, dass mein Problem dadurch entsteht, dass die Bibliotheken in meiner Seitenumgebung nicht richtig geladen werden. Ich habe daher versucht, injectJs zu benutzen, um sie so zu injizieren.

  

// ... erschaffe Casper und mache ein paar andere Sachen

     

casper.then (function () {

%Vor%

Leider wird für beide Funktionen false zurückgegeben. Der Pfad zum Skript ist korrekt, wo könnte sonst die Wurzel dieses Problems liegen?

Vielen Dank für jede Hilfe.

    
Marco 28.06.2012, 03:18
quelle

2 Antworten

4

Ich glaube nicht, dass CasperJS mit HTTP-Anfragen umgehen kann, um Skripte zu injizieren. Das ist komisch, weil sie diese in ihren FAQ zu jQuery anzeigen. Die gleiche FAQ sagt jedoch Folgendes:

  

Sie können Skripte nicht über das HTTP-Protokoll einspeisen, das müssen Sie tatsächlich tun   Verwenden Sie einen relativen / absoluten Dateisystempfad zur Skript-Ressource.

Um es noch einmal zu überprüfen, habe ich es selbst mit Mac OS X und Ihrem obigen Code ausprobiert. Die Ergebnisse von echo waren false bei Verwendung einer Datei über http und true , wenn es lokal war.

    
scottheckel 28.06.2012, 04:10
quelle
1

So injiziere ich Jquery im Casperjs-Skript

%Vor%

Jquery-Datei sollte sich in demselben Verzeichnis befinden, in dem casperjs Skript vorhanden ist

    
Haisam Hameed 13.06.2017 09:51
quelle