如何使用pyqt evaluate javascrip

2024-05-20 01:06:41 发布

您现在位置:Python中文网/ 问答频道 /正文

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

现在我想使用pyqt evaluate 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来达到同样的效果。在


Tags: 函数答案import网页evaljsscriptfunction
1条回答
网友
1楼 · 发布于 2024-05-20 01:06:41

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

您可以使用WebView来加载和显示网页。由于WebView使用WebKit,它将加载和解析HTML以及其中的所有CSS和JavaScript。但这意味着你只能得到最终的结果-你没有太多的控制什么是加载和何时加载。在

或者可以使用Beautiful Soup之类的工具来解析HTML。这样你就可以完全控制了。然后您可以尝试使用spidermonkey来运行JavaScript,但这将失败,因为许多全局变量,如window或{}将丢失。而且,不会有DOM。在

为此,您需要类似于Envjs但是there is no Python integration。在

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

相关问题 更多 >