DOM Aware Browser Python GUI小部件

时间:2009-02-10 08:33:56

标签: python browser widget

我正在寻找一个python浏览器小部件(沿着pyQT4的QTextBrowser类或wxpython's HTML module),它们具有与DOM交互的事件。例如,如果我突出显示一个h1节点,那么widget类应该有一个方法,通知我突出显示的内容以及节点具有的dom属性(<h1>,标记内容,兄弟标记和父标记等)。理想情况下,widget模块/类可以访问DOM树对象本身,这样我就可以遍历它,修改它,并重新渲染新树。

这样的事情存在吗?我试过看,但遗憾的是我无法找到它。提前谢谢!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

我也会喜欢这样的事情。我怀疑有一个Python绑定不存在,但我真的很高兴错了。

我最近看过(但从未尝试过)的一个选项是Webkit浏览器。现在这有一些Python的绑定,并针对不同的工具包(我使用GTK)构建。但是,对于C ++,整个Javascript机器都有可用的API,但没有Python绑定,我也没有看到为什么这些不能绑定到Python的任何原因。我知道,这是一项相当庞大的任务,但它将是一个普遍有用的项目,所以也许值得投资。

答案 2 :(得分:1)

如果您不介意仅限于Windows,则可以使用IE浏览器控件。从wxPython开始,它位于wx.lib.iewin.IEHtmlWindow中(wxPython演示中有一个演示)。这使您可以完全访问DOM以及接收事件的能力,例如

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