2016-05-31 6 views
1

Ich habe ein Knotenscript eingerichtet, um Seiten von einer AngularJS-Anwendung zu scrappen und dann den für Testzwecke benötigten Code zu generieren. Es funktioniert gut bis auf eine Sache. ng-if. Da ng-if Elemente aus dem dom entfernt, sieht das Skript diese Code-Blöcke nie. Ich kann die ng-if's nicht entfernen. Ich frage mich also, ob es eine Möglichkeit gibt, den HTML-Code abzufangen, zwischen dem Zeitpunkt, an dem node-phantom die Seite anfordert, und dem Zeitpunkt, an dem tatsächlich alles in die Phantome dom geladen wird. Ich hoffe, dass ich einfach alle ng-ifs auf true setze, damit alle Inhalte verfügbar sind. Hat jemand dazu Ideen?Verwenden von Knoten und Knotenphantom zum Abkratzen der AngularJS-Anwendung

BEARBEITEN Ich benutze Phantomjs-Knoten nicht Knoten-Phantom.

+0

Können Sie einen Link zu einer Beispielseite bereitstellen, damit ich sie in einem Beispiel verwenden kann? – Vaviloff

+0

@Vaviloff - Ich bin nicht sicher, was Sie als Beispiel wollen .... könnten Sie genauer sein? Wenn Sie nur ein Beispiel für die Verwendung von ng-wenn dann http://plnkr.co/edit/UdT7mfG9P7mWmK7g2L4G?p=preview –

+0

Warum wollen Sie "abfangen" es? Warum können Sie einen Scraper nicht so schreiben, wie ein Benutzer auf der Site navigieren würde? –

Antwort

0

Meine letzte Lösung war die Seite für alle Kommentar-Tags zu kratzen. Führen Sie dann einen Filter durch, um diejenigen zu finden, die ng-ifs enthalten, und analysieren Sie die Variablennamen aus diesen Tags. Dann habe ich den $ scope von Angular angetippt und alle Variablen auf true gesetzt. Erzwingen, dass alles, was auf der Seite versteckt ist, sichtbar ist.

Verwandte Themen