pyv8使用總結


在使用python爬蟲的過程中,難免遇到要加載原網站的js腳本並執行。但是python本身無法解析js腳本。

不過python這么猛的語言,當然設置了很多方法來執行js腳本。其中一個比較簡單的方法是使用pyv8模塊。

用pip下載pyv8模塊,也可以百度搜索安裝包(使用於windows平台)

然后就是使用。

首先導入包:

import PyV8

 

然后創建一個jsContext對象並進入:

ctxt = PyV8.JSContext()
ctxt.__enter__()

然后eval一下想要執行的js的代碼,或者包含你需要的js代碼的源文件:

ctxt.eval(jsFile)

接下來就可以使用這個ctxt來執行js腳本了。主要有兩種用途:

 

  1、調用js中的方法:

  

#把strEnc綁定到js中的strEnc方法
strEnc = ctxt.locals.strEnc
#執行strEnc方法,傳入python的參數:params,_deskey,用python接受返回值
str = strEnc(params, _deskey, '', '')

 

 2、調用js中的變量:

#Url是python中的變量
'''
  例如js文件:
      var a=****;
      var b=****;
      var url=**
  我想動態的取得a和b的值,可以令url='a',得到a的值,url=’b'取得b的值
  這里就不能用locals來尋找,如果用ctxt.locals(Url),則會匹配到js文件中的Url返回給你
    
'''
downLoadUrl = str(ctxt.eval(Url))

 

這兩個方法基本夠用,等以后用到其他的方法再來補充。


免責聲明!

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



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