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

如何用BeautifulSoup提取div的data-page/data-v-app中的键值对?

提取data-page属性中的键值对方案

直接给你实操步骤和代码,照着来就行:

  • 第一步:定位目标div标签
    用BeautifulSoup筛选同时带有data-page和data-v-app属性的div,代码如下:
from bs4 import BeautifulSoup
import json
import re

# 假设你已经通过requests等工具拿到了页面源代码,存在html变量里
soup = BeautifulSoup(html, 'html.parser')
# 精准定位目标div
target_div = soup.find('div', attrs={'data-page': True, 'data-v-app': True})
  • 第二步:提取并处理非标准JSON内容
    拿到data-page的属性值后,因为它不是标准JSON,得先做格式修正:
# 取出属性内容
raw_data = target_div.get('data-page')

# 处理常见的非标准格式问题:单引号转双引号、给无引号的键加双引号、去掉末尾多余逗号
processed_data = re.sub(r"'", '"', raw_data)
processed_data = re.sub(r'(\w+):', r'"\1":', processed_data)
processed_data = re.sub(r',\s*([}\]])', r'\1', processed_data)
  • 第三步:转成字典并提取所需键值对
    把处理好的字符串转成Python字典,之后就能随便取你要的键值对了:
try:
    data_dict = json.loads(processed_data)
    # 示例:提取你需要的键,比如'page'和'params'
    result = {
        'page_name': data_dict.get('page'),
        'params': data_dict.get('params')
    }
    print(result)
except json.JSONDecodeError as e:
    print(f"解析失败,错误信息:{e}")
    # 打印处理后的内容排查问题
    print("处理后的内容:", processed_data)

如果遇到特殊格式的非标准JSON(比如带注释),可以用容错性更高的demjson库,安装后替换解析步骤即可:

pip install demjson
import demjson
data_dict = demjson.decode(processed_data)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:16:11