2011-03-04 80 views
3

可以用Python運行JavaScript嗎?有任何圖書館可以實現這一點嗎?如何用Python解釋JavaScript

我需要執行一些JavaScript,我知道這是可能的一些Java庫,但我更喜歡Python。

有人可以給我一個線索嗎?

最好的問候,

回答

4

您可以檢查spidermonkey

+0

您好,感謝您的答覆。無法調用函數。我需要調用一些調用某些函數的Javascript代碼。沒有更多的選擇?最好的問候, – 2011-03-04 16:27:58

+0

從項目總結:「這個Python模塊允許在Python中實現Javascript類,對象和函數,以及*評估和調用Javascript腳本和函數*」。 – rsenna 2011-03-04 16:38:06

+0

當然它可以調用函數看http://code.google.com/p/python-spidermonkey/source/browse/trunk/spidermonkey.pyx中的def bind_callable(self,name,function) – 2011-03-04 16:39:46

0

使用的SpiderMonkey會給你你的代碼的tightier整合,但作爲一種解決方法,你可以做的JavaScript開始使用硒的遠程運行在瀏覽器控制:

http://seleniumhq.org/projects/remote-control/ (有這樣做的方式即無需對瀏覽器中的「物理」顯示,使用VNC服務器,例如)

+0

感謝您的回覆。我也從這篇文章中看到沒有太多的可能性:http://blog.motane.lu/2009/06/18/pywebkitgtk-execute-javascript-from-python/ – 2011-03-04 16:48:40

0

它是否需要CPython?

而且Javascript是否需要瀏覽器客戶端環境?

如果不是,您可以撥打RhinoJython

(還要注意的Jython版本只在2.5.2)

0

是的,你可以用Python執行JavaScript。我發現最簡單的方法是通過Python綁定到webkit庫 - here is an example。根據我的經驗,硒和蜘蛛猴很難找到工作。

1

如果你已經在使用它的PyQt和QWebView,顯示自定義HTML,功能QWebFrame的evaluateJavaScript可能對您有用:

# Python 
def runJavaScriptText(self, jsText): 
    jsText = 'hello()' # just to fit javascript example 
    self.webView.page().currentFrame().evaluateJavaScript(jsText) 


// Javascript 
function hello() { 
    alert('hello'); 
};