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

如何用BeautifulSoup区分抓取同class的MyCase多组定价信息?

使用BeautifulSoup区分抓取同class的定价内容

核心思路

目标定价内容都在class="field-value"的div标签中,无法直接通过class单独定位,我们可以通过文本内容特征或**关联相邻标签(如套餐名标签)**来筛选区分。

代码实现

import requests
from bs4 import BeautifulSoup

# 获取页面内容
url = "https://slashdot.org/software/p/MyCase/"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 1. 抓取单个定价标识 "$39.00/month/user"
base_price = None
for div in soup.find_all("div", class_="field-value"):
    text = div.get_text(strip=True)
    if "$39.00/month/user" in text:
        base_price = text
        break
print("基础定价标识:", base_price)

# 2. 抓取三个套餐的详细定价
plan_prices = {}
# 利用套餐名标签(field-label)与定价值的配对关系定位
for label_div in soup.find_all("div", class_="field-label"):
    label_text = label_div.get_text(strip=True)
    # 获取相邻的定价值div
    price_div = label_div.find_next_sibling("div", class_="field-value")
    if price_div and label_text in ["Basic Plan", "Pro Plan", "Advanced Plan"]:
        plan_prices[label_text] = price_div.get_text(strip=True)

# 输出各套餐定价
for plan, price in plan_prices.items():
    print(f"{plan}: {price}")

补充说明

  • 如果页面结构中套餐名和定价不在相邻位置,可以直接通过文本内容匹配筛选,比如遍历所有field-value元素,判断文本是否包含"Basic Plan"等关键词。
  • 若页面存在动态加载内容,需要改用selenium等工具获取渲染后的页面再解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:44:16