【问题标题】:How to use pyqt evaluate javascript如何使用pyqt评估javascript
【发布时间】:2013-05-06 02:11:29
【问题描述】:

我正在学习pyqt,用于解析网页。

现在我想使用 pyqt 评估 javascript 函数,就像这个答案一样: spidermonkey evaluate js function which in remote js file


import urllib2
import spidermonkey
js = spidermonkey.Runtime()
js_ctx = js.new_context()
script = urllib2.urlopen('http://etherhack.co.uk/hashing/whirlpool/js/whirlpool.js').read()
    js_ctx.eval_script(script)
    js_ctx.eval_script('var s = "abc"')
    js_ctx.eval_script('print(HexWhirlpool(s))')

我想知道如何使用 pyqt 而不是 spidermonkey 来达到同样的效果。

【问题讨论】:

  • 请更具体地说明您想要实现的目标,如果可能,请在您的帖子中添加一些示例代码

标签: javascript python pyqt spidermonkey


【解决方案1】:

PyQt 是一个 UI 框架,所以它可能不是你箭袋中最好的箭头。

您可以使用WebView 来加载和显示网页。由于WebView 使用WebKit,它会加载并解析其中的HTML 以及所有CSS 和JavaScript。但这意味着您只能获得最终结果 - 您无法控制加载的内容和时间。

或者您可以使用Beautiful Soup 之类的工具来解析HTML。这使您可以完全控制。然后,您可以尝试使用 spidermonkey 运行 JavaScript,但这会失败,因为许多全局变量(如 windowdocument 将丢失)。此外,不会有 DOM。

为此,您需要Envjsthere is no Python integration 之类的东西。

也许 PhantomJS(脚本驱动的 Chrome/Chromium 浏览器)是一种选择。看到这个问题:Is there a way to use PhantomJS in Python?

【讨论】:

  • 非常感谢,对我帮助很大。
猜你喜欢
  • 2011-08-14
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-23
  • 2013-03-25
  • 1970-01-01
相关资源
最近更新 更多