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

如何用BeautifulSoup提取网页script标签内的尺码数据

实现方案

目标数据存储在<script>标签内的JavaScript变量中,BeautifulSoup仅能解析HTML结构,无法直接提取JS变量内的字段,需要结合正则和JSON解析实现,完整代码如下:

import requests
from bs4 import BeautifulSoup
import json
import re

# 页面请求
url = "https://www.nike.com.br/air-max-pre-day-153-169-211-330676"
resp = requests.get(url)
soup = BeautifulSoup(resp.text, "html.parser")

# 定位包含目标数据的script标签
target_script = ""
for script in soup.find_all("script"):
    # 过滤出包含SKU变量的script内容
    if script.string and "var SKUsCorTamanho" in script.string:
        target_script = script.string
        break

# 正则提取JSON字符串部分
json_content = re.search(r"var SKUsCorTamanho = (\{.*\});", target_script).group(1)
# 转换为Python字典
sku_data = json.loads(json_content)

# 提取所有尺码
size_list = [item["Tamanho"] for item in sku_data.values()]
for size in size_list:
    # 输出格式可自行调整,以下两种二选一即可
    print(f"Tamanho {size}")
    # print(size)

步骤说明

  • 第一步先遍历所有script标签,筛选出包含SKUsCorTamanho变量的内容
  • 第二步用正则剔除JS变量声明的冗余内容,仅保留纯JSON字符串
  • 第三步用JSON库将字符串转为Python字典,直接提取Tamanho字段即可
  • 如果只需要单个尺码,取size_list的对应下标值即可

注意:你提供的基础代码存在笔误,request.get需要导入requests库后调用requests.get,否则会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 08:06:07