我正在学习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来达到同样的效果。在
PyQt
是一个UI框架,所以它可能不是你箭袋里最好的箭头。在您可以使用WebView来加载和显示网页。由于
WebView
使用WebKit,它将加载和解析HTML以及其中的所有CSS和JavaScript。但这意味着你只能得到最终的结果-你没有太多的控制什么是加载和何时加载。在或者可以使用Beautiful Soup之类的工具来解析HTML。这样你就可以完全控制了。然后您可以尝试使用}将丢失。而且,不会有DOM。在
spidermonkey
来运行JavaScript,但这将失败,因为许多全局变量,如window
或{为此,您需要类似于Envjs但是there is no Python integration。在
也许PhantomJS(脚本驱动的Chrome/Chromium浏览器)是一个选择。看这个问题:Is there a way to use PhantomJS in Python?
相关问题 更多 >
编程相关推荐