首页 > 编程语言 >Python爬虫 execjs执行js报错json.decoder.JSONDecodeError: Expecting value: line 1 column 85 (char 84)

Python爬虫 execjs执行js报错json.decoder.JSONDecodeError: Expecting value: line 1 column 85 (char 84)

时间:2023-04-05 12:45:55浏览次数:40  
标签:encoding Python JSONDecodeError subprocess char 报错 fun execjs

fun=re.search(r'(__=\([\S\s]*?;)<',r_text).group(1)
fun=fun+'function get(){return JSON.stringify(__.data)}'
ctx = execjs.compile(fun)
rdata = (ctx.eval('get()'))
报错 json.decoder.JSONDecodeError: Expecting value: line 1 column 85 (char 84)

 

 

解决:

  方式一:不建议,因为会影响后面打包成执行程序

   点击1处进入subprocess.py文件

   把encoding=None 改成encoding=‘utf-8’

  方式二: 

  # **********放在execjs模块之前,解决execjs执行js产生的乱码报错************
  import subprocess
  from functools import partial
  subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')

  import execjs

源引自与参考:https://www.cnblogs.com/yusilu-2653144/p/16626661.html,

标签:encoding,Python,JSONDecodeError,subprocess,char,报错,fun,execjs
From: https://www.cnblogs.com/chenyun-delft3d/p/17289141.html

相关文章

  • 续:python 新环境的创建并在 spyder 中转换 - 如何解决转换环境时报错:invalid file pat
    原文地址blog.csdn.net目录重点问题描述解决方法各种尝试最终灵感重点不想看全文的直接看这里,不要安装一个和已有python环境一样版本的python(这里的一样指的是完全一样,比如都是python2.7.15),如果已有python2.7.15,可以创建python2.7.18的环境并在spyder中转换。如......
  • python 新环境的创建并在 spyder 中转换——在 spyder 中配置 arcgis 的 python 解释
    原文地址blog.csdn.net目录问题描述创建python新环境查看所有环境创建新的python2.7虚拟环境激活环境删除环境在spyder中配置环境,切换python解释器回归正题,将指定路径下的python解释器配置到spyder中重点——解决方法问题描述这几天上课需要下载和学习a......
  • Python装饰器与GIL锁解释
    Python进阶篇-系列文章全篇......
  • python机器学习案例系列教程——K最近邻算法(KNN)、kd树
    全栈工程师开发手册(作者:栾鹏)python数据挖掘系列教程K最近邻简介K最近邻属于一种估值或分类算法,他的解释很容易。我们假设一个人的优秀成为设定为1、2、3、4、5、6、7、8、9、10数值表示,其中10表示最优秀,1表示最不优秀。我们都知道近朱者赤,近墨者黑,我们想看一个人是什么样的,看......
  • python机器学习案例系列教程——文档分类器,朴素贝叶斯分类器,费舍尔分类器
    全栈工程师开发手册(作者:栾鹏)python数据挖掘系列教程github地址:https://github.com/626626cdllp/data-mining/tree/master/Bayes贝叶斯分类过程概述:首先有一批已知分类的数据集。对每个输入对象提取特征,根据输入对象的特征属性和输入对象的所属分类,计算分类与特征属性之间的概率......
  • 8-1 【Python0001】列举说明Python同Java及C++的不同之处
    首先是C++C++是在C语言的基础上发展起来的,他包含了C语言的所有内容。同时,也引入了面向对象的概念。优点:1、他包含了C语言的内容,包括指针,使得C++在执行效率上特别的高效。2、引入面向对象的概念,使得开发效率提高。3、提供了很多的库,具有较好的封装性和移植性(代码)。缺点:1、C++比较难......
  • npm install 报错 - code EINTEGRITY sha1
    npmERR!codeEINTEGRITYnpmERR!sha1-F8b22R2owVwncEo+OIM9Z1kqOVk=integritychecksumfailedwhenusingsha1:wantedsha1-F8b22R2owVwncEo+OIM9Z1kqOVk=butgotsha1-65zsXJnJjAVIDtOI25R7Koa2940=.(5924859bytes)从gitlab克隆项目下来,执行npminstall报错,目前知道的......
  • python3里面实现将日志文件写入当前脚本运行的文本中
    在Python3中,可以使用logging模块来实现将日志写入本地文本文件中。下面是一个简单的示例代码:importlogging#配置logging模块logging.basicConfig(level=logging.DEBUG,filename='example.log',format='%(asctime)s%(leve......
  • 使用Python实现Hull Moving Average (HMA)
    赫尔移动平均线(HullMovingAverage,简称HMA)是一种技术指标,于2005年由AlanHull开发。它是一种移动平均线,利用加权计算来减少滞后并提高准确性。HMA对价格变动非常敏感,同时最大程度地减少短期波动可能产生的噪音。它通过使用加权计算来强调更近期的价格,同时平滑数据。计算HMA的公......
  • python 变量动态命名,赋值和调用
    变量动态命名foriinrange(3):exec("变量{}".format(i))变量动态赋值foriinrange(3):exec("变量{}={}*2".format(i,i))动态变量调用eval()执行完会返回结果,而exec()执行完不返回结果(http://c.biancheng.net/view/5683.html)a=1exec("a=2")#相当于直接执......