2009-02-10 46 views
4

我正在尋找一個python瀏覽器小部件(沿着pyQT4的QTextBrowser類或wxpython's HTML module的行),它具有與DOM交互的事件。例如,如果我突出顯示一個h1節點,那麼widget類應該有一個方法,通知我突出顯示了某些節點具有的屬性(<h1>,標記的內容,兄弟和父標記等)。理想情況下,widget模塊/類可以訪問DOM樹對象,以便我可以遍歷它,修改它,並重新渲染新樹。DOM感知瀏覽器Python GUI小部件

是否有這樣的事情存在?我試過尋找,但很不幸找不到它。提前致謝!

+0

似乎[XULRunner的(https://developer.mozilla.org/en/XULRunner/What_XULRunner_Provides)可以支持我需要什麼。我將研究是否可以用Python編寫DOM腳本。將更新這篇文章,當我知道更多。 – Karan 2009-02-11 07:36:31

回答

2

它可能不適合您的目的,但您可能想看看PyKDE中包含的KHTML的Python綁定。開始尋找一個地方是KHTMLPart類:

http://api.kde.org/pykde-4.2-api/khtml/KHTMLPart.html

因爲這個類的API是基於Qt中使用的信號和槽的範例,你需要的各種信號連接到插槽在自己的代碼瞭解文檔的哪些部分已更改。還有一個DOM API,所以它也應該可以訪問文檔的選定部分的DOM節點。

更多信息可以在這裏找到:

http://api.kde.org/pykde-4.2-api/khtml/index.html

+0

這似乎是目前最好的可用解決方案,而不是在webkit上進行攻擊。謝謝:) – Karan 2009-02-18 02:25:00

1

我也喜歡這樣的事情。我懷疑有一個Python綁定不存在,但會很高興在這方面出錯。

我最近查看的一個選項(但從未嘗試過)是Webkit瀏覽器。現在這對Python有一些綁定,並且針對不同的工具包(我使用GTK)構建。然而,對於C++來說,整個Javascript機器都有可用的API,但是沒有Python綁定,我也沒有看到爲什麼這些不能綁定到Python。我知道這是一個相當大的任務,但它將是一個普遍有用的項目,所以也許值得投資。

1

如果您不介意限於Windows,則可以使用IE瀏覽器控件。從wxPython開始,它位於wx.lib.iewin.IEHtmlWindow中(wxPython演示中有一個演示)。這使您可以完全訪問DOM並吸收事件的能力,例如

ie.document.body.innerHTML = u"<p>Hello, world</p>"