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

如何仅抓取网页中的商品主价格?解决同class多价格爬取问题

解决主价格与月供价格的区分抓取问题

问题分析

当前代码全局抓取所有price-tag-fraction元素,导致主价格和月供价格混在一起。核心解决思路是先定位单个商品卡片,再在卡片内精准提取主价格——主价格和月供价格属于不同子模块,在商品卡片内有明确层级区分。

修改后的代码

# 获取所有商品卡片容器
product_cards = soup.find_all('div', class_='ui-search-result__content shops__result-content')

productos = []
precios = []
count = 0

# 遍历每个商品卡片
for card in product_cards:
    if count >= 33:
        break
    # 提取商品名称
    title = card.find('h2', class_='ui-search-item__title shops__item-title').text
    productos.append(title)
    # 提取主价格(每个卡片内第一个price-tag-fraction就是主价格)
    main_price = card.find('span', class_='price-tag-fraction').text
    precios.append(main_price)
    count += 1

# 处理价格格式(按需拆分逗号)
prices = [item.split(',') for item in precios]

print(productos)
print(precios)

关键说明

  • 按商品卡片遍历:先获取每个商品的独立卡片容器,确保仅处理当前商品的信息,避免跨商品抓取无关价格。
  • 精准定位主价格:单个卡片内,主价格是第一个出现的price-tag-fraction元素;月供价格属于分期付款模块(通常在ui-search-installments类容器内),不会被card.find()选中(该方法只返回第一个匹配项)。
  • 修正循环计数问题:原代码中count +=1写在break之后,导致计数无法递增,修改后将计数放在循环体内,确保正确控制抓取数量。

内容的提问来源于stack exchange,提问作者MATIAS IGNACIO OLIVA ALCAYAGA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:40:23