【问题标题】:PyQtWebkit and java scriptQtWebkit 和 javascript
【发布时间】:2010-10-02 19:30:46
【问题描述】:

我有一个带有 js 的页面。 在网页上执行 js 后我需要获取 dom。 Js 在名为 'sdl' 的 div 中插入文本。 我需要在 . js源码中无法解析value,是js生成的。 怎么做? 对不起我的英语不好。

【问题讨论】:

    标签: python qt pyqt4 qtwebkit


    【解决方案1】:

    DOM 被暴露(至少在 pyqt >= 4.7.4 中)

    document = webview.page().currentFrame().documentElement()
    document.findAll("a") 
    ...
    

    http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qwebframe.html

    http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qwebelement.html

    【讨论】:

      【解决方案2】:

      在 Python 中,您可以使用 Ghost,它是开源的,可从 github 获得。它是围绕 PyQt4+WebKit hack 的 Python 包装器,运行良好。你可以这样做

      import ghost
      g = ghost.Ghost()
      g.open('http://stackoverflow.com/')
      

      现在g.content 指的是文档,后渲染。

      您还可以使用evaluate 方法评估文档中的JS,它会返回JS 值。

      Ghost 也很容易公开 PyQt 对象,因此您可以对 Ghost 未实现的 Ghost 对象执行操作,并且它会通过。

      我记不太清了,但我想是这样的

      g.main_frame.setContent('<b>Hello World</b>')
      

      可以用来设置文档,而

      g.content = '<b>Hello World</b>'
      

      扔一个。这需要一些驯服,但很快就会让它按照你想要的方式工作。

      Ghost 文档很烂,但源代码是一个单独的文件,而且解释性很强。我用Ghost,没问题。只是不要创建多个Ghost 对象,否则它往往会导致一切崩溃。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-31
        • 2012-08-06
        相关资源
        最近更新 更多