Zugriff auf das DOM mit Python in webkitgtk

Während der Entwicklung von SaleZ stand ich vor dem Problem, dass ich Werte aus dem Document Object Model (DOM) auslesen wollte. In Webkit gibt es zwar die Funktion get_dom_document, allerdings ist sie noch nicht in der Version von Webkit enthalten, welche mit Ubuntu 10.04 mitgeliefert wird. Nach einiger Suche im Netz habe ich dann eine Lösung für das Problem gefunden.

Mit Hilfe des folgenden Codes kann man sich den Inhalt eines bestimmten Elements ausgeben:

import jswebkit

ctx = jswebkit.JSContext(webView.get_main_frame().get_global_context())
text = ctx.EvaluateScript("document.getElementById("fooBar").innerHTML")

Möchte man hingegen das DOM manipulieren, kann man die  execute_script Funktion eines WebViews nutzen:

webView.execute_script('document.getElementById("foobar").innerHTML = "foo bar"')

4 Gedanken zu „Zugriff auf das DOM mit Python in webkitgtk

  1. sbillaudelle

    Man kann mit PyJavaScriptCore gleich den ganzen DOM manipulieren:

    ctx = jscore.JSContext(self.view.get_main_frame().get_global_context()).globalObject
    print ctx.document.getElementById(‚foo‘)

  2. zefanja Beitragsautor

    Danke für den Hinweis. So sieht das ganze natürlich noch ein wenig nativer aus.

  3. zefanja Beitragsautor

    Mit PyQT hatte ich auch mal ne Zeit lang was gemacht. Ist schon ein ziemlich mächtiges Framework und wie ich finde besser geeignet (als GTK), wenn man cross-plattform entwickeln möchte.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.