Python執行js之PyexecJs


利用Python執行js

爬蟲中會經常碰到JS加密,當我們找到他加密的JS代碼之后我們需要獲取它的返回值,python雖然可以模仿js寫一個python版本的加密,但是這樣有點費時間,也有點費頭發~

安裝PyexecJS

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

pip install pyexecjs

執行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 代碼)


免責聲明!

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



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