支持DOM的浏览器Python GUI小部件

支持DOM的浏览器Python GUI小部件,python,browser,widget,Python,Browser,Widget,我正在寻找一个python浏览器小部件(与pyQT4的类或类似),它具有与DOM交互的事件。例如,如果我高亮显示一个h1节点,小部件类应该有一个方法来通知我高亮显示了什么以及该节点有什么dom属性(、标记的内容、同级标记和父标记等)。理想情况下,小部件模块/类将允许访问DOM树对象本身,以便我可以遍历它、修改它并重新呈现新树 这样的东西存在吗?我试过找,但不幸的是找不到。提前谢谢 我也会喜欢这样的东西。我怀疑不存在一个具有Python绑定的版本,但如果在这方面出错,我会非常高兴 我最近看到(但从

我正在寻找一个python浏览器小部件(与pyQT4的类或类似),它具有与DOM交互的事件。例如,如果我高亮显示一个h1节点,小部件类应该有一个方法来通知我高亮显示了什么以及该节点有什么dom属性(
、标记的内容、同级标记和父标记等)。理想情况下,小部件模块/类将允许访问DOM树对象本身,以便我可以遍历它、修改它并重新呈现新树


这样的东西存在吗?我试过找,但不幸的是找不到。提前谢谢

我也会喜欢这样的东西。我怀疑不存在一个具有Python绑定的版本,但如果在这方面出错,我会非常高兴


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

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

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


对于您的目的来说,它可能并不理想,但是您可能想看看PyKDE中的Python到KHTML的绑定。开始查看的一个地方是KHTMLPart类:

由于该类的API基于Qt中使用的信号和插槽范例,因此您需要在自己的代码中将各种信号连接到插槽,以了解文档的某些部分何时发生了更改。还有一个domapi,因此也可以访问文档中选定部分的DOM节点

更多信息可在此处找到:


它似乎可以满足我的需要。我将研究是否可以使用Python编写DOM脚本。当我知道更多的时候,我会更新这篇文章。这似乎是目前最好的解决方案,除了黑客攻击webkit。谢谢:)有人提醒我,KHTML还有一个包装,可能更容易开始使用: