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

如何使用BS4提取指定class下无title属性的span标签内的文本

问题修复方案

错误点说明

    1. BeautifulSoup 初始化参数格式错误
      你代码中传入的第二个解析器参数lxml缺少引号,属于语法错误,需要改为字符串格式的'lxml';如果未安装lxml库,也可以替换为Python内置的'html.parser'无需额外安装依赖。
    1. 选择器未过滤带title属性的span
      当前选择器.priceValue span会匹配该类名下所有span元素,不符合你筛选无title属性span的需求,需要用CSS伪类:not([title])做属性过滤。
    1. 缺少请求头触发反爬
      CoinMarketCap有基础反爬校验,直接发起无标识请求会被拦截,返回的不是正常页面内容,无法提取到目标数据,需要补充User-Agent头伪装成浏览器请求。

修正后可运行代码

import requests
from bs4 import BeautifulSoup

s = requests.Session()
# 伪装浏览器请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
}
url = "https://coinmarketcap.com/currencies/solana/"

html = s.get(url, headers=headers)
# 修正解析器参数,调整选择器过滤无title属性的span
soup = BeautifulSoup(html.text, 'lxml')
price = soup.select_one('.priceValue span:not([title])').text

print(price)

额外排查建议

如果运行后还是拿不到数据,可以先打印html.text查看返回的页面内容,若返回的是验证页面或403提示,说明触发了更高等级的反爬策略,可以改用无头浏览器工具加载页面获取数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:45:02