You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BeautifulSoup从HTML中提取sessionCartId遇到问题

提取HTML中script标签内的sessionCartId字段

问题说明

已成功定位到目标script标签,但直接使用json.loads()解析其内容失败,无法获取sessionCartId字段。原尝试代码如下:

sessioncartid = BeautifulSoup(response.text, "html.parser").findAll("script", {"type":"text/javascript"})[2]
data = json.loads(sessioncartid.text)
print(data)

目标script标签包含多段JavaScript代码,仅OCC变量对应的对象结构中包含所需的sessionCartId字段。

解决方案

由于script标签内的内容并非纯JSON格式,需先提取出OCC变量对应的JSON结构片段,再进行解析:

修改后的代码

import re
import json
from bs4 import BeautifulSoup

# 定位目标script标签
script_tag = BeautifulSoup(response.text, "html.parser").findAll("script", {"type":"text/javascript"})[2]
script_content = script_tag.text

# 用正则匹配OCC变量对应的JSON部分
occ_match = re.search(r'var OCC = (\{.*?\});', script_content, re.DOTALL)
if occ_match:
    occ_json_str = occ_match.group(1)
    # 解析JSON字符串
    occ_data = json.loads(occ_json_str)
    # 提取sessionCartId字段
    session_cart_id = occ_data.get("sessionCartId")
    print(session_cart_id)
else:
    print("未找到OCC变量对应的JSON结构")

代码说明

  • re.DOTALL参数允许正则表达式中的.匹配换行符,适配多行排版的JSON结构
  • re.search精准定位var OCC =后的JSON对象片段,避免其他JavaScript代码干扰
  • 解析合法JSON字符串后,直接通过键名sessionCartId提取目标字段

内容的提问来源于stack exchange,提问作者Husian Jagnom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:57:41