python中執行javascript代碼


python中執行javascript代碼:

1、安裝相應的庫,我使用的是PyV8

2、import PyV8

  ctxt = PyV8.JSContext()
     ctxt.enter()
     func = ctxt.eval('''需要執行的javascript代碼''')

 #需要注意的是里面寫的function函數需要用()括起來

例如:

import PyV8

class Test():

      def js(self):        

   ctxt = PyV8.JSContext()        

   ctxt.enter()               

   func = ctxt.eval('''(function(){return '###'})''')        

   print func()        

   print '213'

if __name__ == '__main__':

     crawler = Test()    

  crawler.js()    

輸出的結果是:

>>>
###
213
>>>

3、向js代碼中傳遞參數的方法

  func = ctxt.eval(''' (function(a){return encodeURIComponent(a)})''')
        print func(a)

  #a是需要傳遞的參數,encodeURIComponent是js中的一種編碼方式

  #我遇到這個問題是在做爬蟲的時候,進行post傳值的過程中,一些中文字符被網站的js使用encodeURIComponent進行了編碼

   導致不能提交可識別的代碼,所以想到這個辦法在python程序中進行編碼,之后再傳值,就可以很好的解決這個問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM