Render JavaScript in HTML in Python?

Was

Meine Web-App wird durch Google AngularJS dynamisch gemacht.

Ich möchte, dass statische Versionen meiner Seiten generiert werden.

Warum

Web-Schaber wie Google's ausführen und das JavaScript rendern; Aber nicht den Inhalt auf die gleiche Weise wie ihre statischen Äquivalente behandeln.

Referenzen:

  • Ist schwere JavaScript-Nutzung beeinträchtigen Googleability? (Programmierer StackExchange)
  • AJAX-Anwendungen erstellen Crawlable (Google-Dokumentation für Webmaster)

Wie

Nicht sicher genau wie – weshalb ich frage – aber ich möchte auf dieselbe Quelle zugreifen, die dein Browser 'Inspektionselement' präsentiert; Anstatt die Quelle, die: Strg + U (Seitenseite anzeigen) zeigt.

Einmal habe ich ein Skript, das die Seite macht. 'Spucken' aus der HTML + CSS; Ich werde diese "generierten" Dateien auf meinem Webserver platzieren. Ein "Cron" Job wird dann geplant, um die Dateien in regelmäßigen Abständen zu regenerieren.

Diese statischen Dateien werden anschließend anstelle der dynamischen Dateien bedient; Wenn JavaScript deaktiviert ist und / oder wenn ein Schaber die Seite besucht.

One Solution collect form web for “Render JavaScript in HTML in Python?”

Hier ist eine Lösung, aber ich bezweifle sehr, dass ich eine öffentliche PaaS-Wolke finden kann, die es ausführen kann:

import spynner if __name__=='__main__': url = "http://angular.github.com/angular-phonecat/step-10/app/#/phones" browser = spynner.Browser() browser.create_webview(True) browser.load(url, load_timeout=60) print browser._get_html() # ^ Can pipe this to a file, POST it to my server or return it as a string browser.close() 

Paket: Spynner (auf Github)

Python ist die beste Programmiersprache der Welt.