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

如何用BeautifulSoup抓取HTML的dl、dd标签?StockX爬取故障求助

问题描述

尝试爬取StockX网站,目标获取12个月历史数据区域底部的波动率(Volatility)数据。目前能正常获取last_sale价格,但始终无法获取波动率数据,执行代码时会报错。

目标HTML结构:

<dl>
 <dt class="chakra-stat__label css-1qtnkr4">Volatility
  </dt>
 <dd class="chakra-stat__number css-jcr674">2%</dd>
</dl>

使用的Python代码(last_sale可正常运行,volatility获取失败):

import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0',
    'Accept-Language': 'en-US,en;q=0.5'
}

cookies = {
    'stockx_homepage': "sneakers",
}

def main(url):
    r = requests.get(url, headers=headers, cookies=cookies)
    soup = BeautifulSoup(r.text, 'lxml')
    last_sale = soup.select('.css-xfmxd4')[0]
    volatility = soup.find("dd",class_="chakra-stat__number .css-jcr674")

    print("last sale: " + last_sale.text + "\n")
    print("volatility: " + volatility.text + "\n")

url = "https://stockx.com/adidas-yeezy-boost-350-turtle-dove-2022?-size=11"
main(url)
问题排查与解决

1. CSS选择器语法错误

你在find方法的class_参数里错误添加了.符号,导致无法匹配到目标元素。实际class属性值是chakra-stat__number css-jcr674,不需要在class名前加.。

原错误代码:

volatility = soup.find("dd",class_="chakra-stat__number .css-jcr674")

修复方案二选一:

  • 修正find方法的class参数:
volatility = soup.find("dd", class_="chakra-stat__number css-jcr674")
  • 改用CSS选择器语法(和last_sale的写法一致):
volatility = soup.select('.chakra-stat__number.css-jcr674')[0]

2. 动态加载的潜在问题

如果修复语法后仍无法获取数据,大概率是波动率数据通过JavaScript动态渲染生成的。requests仅能抓取页面初始HTML,无法执行JS加载的内容。此时可选择:

  • 使用Selenium/Playwright等工具模拟浏览器,等待页面渲染完成后再抓取
  • 通过浏览器开发者工具的Network面板,查找StockX的API接口,直接请求接口获取结构化数据

3. 更稳定的定位方式

StockX的动态class名(如css-jcr674)可能随时变更,建议通过文本内容关联定位,避免依赖易变的class:

# 先找到包含"Volatility"的dt标签
volatility_dt = soup.find("dt", text=lambda t: t and "Volatility" in t.strip())
if volatility_dt:
    # 获取相邻的dd标签
    volatility = volatility_dt.find_next_sibling("dd")
    if volatility:
        print("volatility: " + volatility.text.strip() + "\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:33:25