在使用 execjs执行js文件时,或者爬虫解析时, 遇到这个问题
\xa0 是不间断空白符
我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。
而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。
latin1 字符集向下兼容 ASCII ( 0x20~0x7e )。通常我们见到的字符多数是 latin1 的,比如在 MySQL 数据库中。
解决方法:
with open("wenshu.js", 'rb') as f:
my_js = f.read()
my_js = my_js.decode().replace("\xa0", "")
ctx = execjs.compile(my_js)
pwd = ctx.call("get_pwd", password)