如何将脚本路径转换为JSON?

问题描述

我正在抓取该网站:https://www.epicery.com/c/promos?gclid=CjwKCAjw97P5BRBQEiwAGflV6bGzNEAz7MTIrgelBkTR277v3lhStP5tH0wgxuLj1ytlcQAAjb-cxBoCsVwQAvD_BwE 我正在尝试在脚本路径中检索一些信息,例如描述。 我使用xpath获取了脚本内容,并进行了一些正则表达式,然后尝试将其加载为json:

script_path = response.xpath('/html/body/script[1]').get()
j_list = re.findall(r'\[(.*)\}\]',script_path)
j = j[0].replace("'","")
json_script = json.loads(j)

但是我遇到以下无法解决的错误:

 raise JSONDecodeError("Extra data",s,end)
json.decoder.JSONDecodeError: Extra data: line 1 column 152446 (char 152445)

解决方法

我不确定您想要什么,但这对我有用:

def parse(self,response):
    taxons_str = response.xpath('//script[contains(.,"var taxons")]/text()').re_first(r'(?s)var taxons = (.+?)var shops')
    if taxons_str:
        taxons = json.loads(taxons_str)
        for product in taxons:
            process_your_product(product)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...