一.異常信息(...gbk.....)
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa1 in position 26: illegal multibyte sequence
解決辦法
進入報錯源碼
\lib\subprocess.py
因為是codec
相關報錯
就搜索encoding
,為什么搜這個就是代碼寫多了感覺
我們會發現這樣一段
def __init__(self, args, bufsize=-1, executable=None,
stdin=None, stdout=None, stderr=None,
preexec_fn=None, close_fds=True,
shell=False, cwd=None, env=None, universal_newlines=None,
startupinfo=None, creationflags=0,
restore_signals=True, start_new_session=False,
pass_fds=(), *, encoding=None, errors=None, text=None):
#encoding是空怪不得是gbk報錯
#直接修改encoding=utf8
解決啦~~
二.異常信息(沒有window對象)
execjs._exceptions.ProgramError: TypeError: __g._encrypt is not a function
解決辦法
我們execjs除了nodejs
我們還需要瀏覽器環境
,我們瀏覽器上還需要document
以及window
對象所有呢我們要安裝環境
執行npm install jsdom
代碼.py中我們要修改內容
#js_obj = execjs.compile(js_codex)修改成
js_obj = execjs.compile(js_code,cwd='node_modules'),
#也就是導入我們下載完成后的node_modules的文件
然后呢我們在Js_encryption.js
開頭添加代碼
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;
//固定寫法別想那么多