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

如何用Python Selenium获取指定class的多个span文本并找出最小值?

实现方法详解

嘿,刚学Python一周就着手解决实际问题,真的很棒!你的需求完全可以实现,我给你一步步拆解,代码也会写得很易懂,适合新手~

核心思路

我们需要完成这几个关键步骤:

  • 获取目标页面的HTML内容
  • 解析HTML,提取所有目标span元素的文本
  • 将文本转换成可计算的数值
  • 找出这些数值中的最小值
  • 用这个最小值作为上架价格

所需工具

首先得安装两个常用的Python库:

  • requests:用来获取网页内容(如果是本地HTML文件可以跳过,但大部分情况是在线页面)
  • beautifulsoup4:用来解析HTML结构,提取我们需要的元素

打开终端/命令提示符,执行安装命令:

pip install requests beautifulsoup4

代码实现(静态页面场景)

假设你的目标页面是静态加载的(页面内容在打开时就全部加载完成,不需要滚动或点击),下面是完整代码,每一步都加了注释:

# 导入需要的库
import requests
from bs4 import BeautifulSoup

# 1. 获取页面HTML内容
# 如果是在线页面,替换成目标页面的URL
url = "你的目标页面URL"
response = requests.get(url)
# 确保请求成功
if response.status_code == 200:
    html_content = response.text
else:
    print("页面请求失败,请检查URL是否正确")
    exit()

# 如果是本地HTML文件,用下面这段代替上面的请求代码
# with open("你的本地HTML文件名.html", "r", encoding="utf-8") as f:
#     html_content = f.read()

# 2. 解析HTML,找到所有目标span元素
soup = BeautifulSoup(html_content, "html.parser")
# 查找所有class为"currency-coins value"的span标签
coin_spans = soup.find_all("span", class_="currency-coins value")

# 3. 提取文本并转换成数值
coin_values = []
for span in coin_spans:
    # 提取文本,去掉前后多余的空格
    text = span.get_text().strip()
    # 转换成整数(如果是小数就用float)
    try:
        value = int(text)
        coin_values.append(value)
    except ValueError:
        # 防止有些文本不是纯数字,跳过这类情况
        print(f"跳过无效数值:{text}")

# 4. 检查是否成功提取到数值
if not coin_values:
    print("没有提取到有效数值,请检查class名称是否正确")
    exit()

# 5. 找出最小值
min_price = min(coin_values)
print(f"提取到的所有数值:{coin_values}")
print(f"最小价格为:{min_price}")

# 接下来你就可以用min_price来做上架操作啦

动态页面场景(如果页面是JS渲染的)

如果目标页面是动态加载的(比如需要滚动页面才会加载那20个玩家数据),上面的方法可能拿不到完整数据,这时候需要用selenium库模拟浏览器加载页面:

  1. 先安装selenium:
pip install selenium
  1. 下载对应浏览器的驱动(比如Chrome的ChromeDriver),放到Python的安装目录或者系统PATH里
  2. 替换解析部分的代码:
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 初始化浏览器(这里用Chrome,其他浏览器类似)
driver = webdriver.Chrome()
driver.get("你的目标页面URL")
# 等待页面加载完成(根据实际情况调整等待时间)
time.sleep(3)

# 提取页面HTML
html_content = driver.page_source
driver.quit()

# 后面的解析、提取数值步骤和静态页面一样
soup = BeautifulSoup(html_content, "html.parser")
coin_spans = soup.find_all("span", class_="currency-coins value")
# ... 后续代码和之前一致

注意事项

  • 确认class名称完全正确,HTML里的class是currency-coins value(两个类名),所以代码里用class_="currency-coins value"是对的
  • 如果数值里有特殊符号(比如$、,),需要先去掉再转换,比如text = text.replace("$", "").replace(",", "").strip()
  • 新手可以先从本地HTML文件测试,把页面保存到本地,用代码里的本地文件读取方式调试,更容易排查问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:59:03