【发布时间】:2012-03-13 06:50:27
【问题描述】:
我已经在我的 Linux 机器 (Ubuntu) 上成功安装了 Spidermonkey JS 引擎。 基本上我的目标是让它执行 Ajax (js) 脚本并将结果返回给我的 Python 脚本。我基本上是在尝试构建一个好的 O.O.网络刮刀。但是让所有这些工作对我来说非常困难。
现在,当我在终端中输入 JS 时,我可以开始执行 Javascript。 我一直在谷歌搜索,并在 Stackoverflow 上找到了这个小片段:
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(HexWhirpool(s))')
但它运行失败,出现找不到模块 Spidermonkey 的错误。
我现在有点迷路了。有谁能帮忙吗?
【问题讨论】:
-
你是否也安装了这个:code.google.com/p/python-spidermonkey?
-
是的,我做了:easy_install python-spidermonkey,但它返回一个错误:RuntimeError: No package configuration found for: nspr 试图通过安装来修复该错误:apt-get install libnspr-dev pkg-config got此错误:包 libnspr-dev 不可用,但被另一个包引用。这可能意味着该软件包丢失、已过时或仅可从其他来源获得 E:软件包“libnspr-dev”没有安装候选者并且现在正式卡住了
-
另一种方法是使用 Python 的 QtWebKit + PySide 绑定——我已经取得了巨大的成功。您还将对 HTML 和 Javascript 交互进行更全面的处理,因为它将在“真实浏览器中”运行。浏览器会进行一些数据处理,以确保无效但“非常接近”的 HTML 仍能正确呈现,手动执行此操作要困难得多。这个解决方案比你想要的要重得多,但我现在不会这样做。
-
“不相信所有的说法都是一种真实的方式” - Unix 哲学 ;)
标签: javascript python linux spidermonkey