Python執行js之PyexecJs

利用Python執行js

爬蟲中會常常碰到JS加密,當咱們找到他加密的JS代碼以後咱們須要獲取它的返回值,python雖然能夠模仿js寫一個python版本的加密,可是這樣有點費時間,也有點費頭髮~node

安裝PyexecJS

注意:這塊須要一個執行js的環境,我本地裝的是NodeJSpython

pip install pyexecjsdom

執行JS

舉一個例子以下:函數

import execjs
js = execjs.compile(''' function genpvid() {
                var a = (new Date).getTime();
                var b = "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g, function(b) {
                    var c = (a + 16 * Math.random()) % 16 | 0;
                    return a = Math.floor(a / 16),
                    ("x" == b ? c : 3 & c | 8).toString(16)
                });
                return b
            }''')
result = js.call('genpvid') #call裏面的參數第一個是js函數名稱,若是要執行的js有參數,後面跟上參數就能夠,如js.call('getpvid',2,3)這樣
print(result)

結尾

這個的缺點是須要執行JS的環境,若是不想安裝nodejs,能夠試試另外一個庫PyV8/js2py(js2py將 JS 代碼直接轉譯成 Python 代碼)加密

相關文章
相關標籤/搜索