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

如何使用BeautifulSoup获取HTML中指定span元素的文本值?

解决方法

你当前的代码只是定位到了包含两个价格的<p>标签,所以会返回所有子元素的文本拼接结果。要单独获取<span>里的文本,可以用以下几种方式:

方法1:链式查找

先定位到目标<p>标签,再在其内部查找<span>元素,最后提取文本:

# 先找到p标签,再找里面的span
price_container = soup.find("p", class_="book-price")
target_price = price_container.find("span").get_text(strip=True)
print(target_price)  # 输出: TK. 2,050

strip=True用于去除文本前后的空白字符,让结果更整洁

方法2:直接使用CSS选择器

用CSS选择器一步定位到目标<span>,代码更简洁:

# 直接通过CSS选择器定位p标签下的span
target_price = soup.select_one("p.book-price span").get_text(strip=True)
print(target_price)  # 输出: TK. 2,050

如果担心元素可能不存在(避免报错),可以加上判断:

price_elem = soup.select_one("p.book-price span")
if price_elem:
    target_price = price_elem.get_text(strip=True)
    print(target_price)
else:
    print("未找到目标价格元素")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:22:37