折腾一下午终于弄好PyV8引擎,解析JS方便多了.

关键: PyV8依赖于Boost,所以安装前先确定你的Linux有没有Boost(就因为这个折腾一下午,官方首页也没说,找了好久)

Ubuntu下安装

sudo apt-get install libboost-all-dev

sudo apt-get install aptitude

接着安装PyV8

用pip安装

$sudo pip install -v pyv8

或:

sudo apt-get install scons libboost-python-dev

svn checkout http://v8.googlecode.com/svn/trunk/ v8

svn checkout http://pyv8.googlecode.com/svn/trunk/ pyv8

cd v8

export V8_HOME=`/home/buffer/v8`

cd ../pyv8

sudo python setup.py build

sudo python setup.py install

 

接着就可以快乐的使用PyV8了....附使用代码

 

import PyV8

class v8Doc(PyV8.JSClass):
    def write(self, s):
        print s.decode('utf-8')

class Global(PyV8.JSClass):
    def __init__(self):
        self.document = v8Doc()

glob = Global()
ctxt = PyV8.JSContext(glob)
ctxt.enter()
ctxt.eval("var ant=8257+4341;var calf=5749+403^ant;var goat=1986+4175^calf;var fish=6422+7944^goat;var worm=7920+3648^fish;")
ctxt.eval("document.write(((10502^calf)+24).toString());")
jss = "document.write((10502^calf)+24);"
jss = "var thisvalue = " + jss.strip().replace("document.write(","").replace(");",";")
print jss
ctxt.eval(jss)
vars = ctxt.locals.thisvalue
print "vars = " + str(vars)

  

 posted on 2014-11-29 17:27  vingi_苍月  阅读(4369)  评论(0编辑  收藏  举报