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

如何使用BeautifulSoup筛选排除指定class值的所有tr标签

解决方案

BeautifulSoup 有两种常用实现方式,可根据你使用的版本选择:

方法1:lambda 表达式过滤(全版本兼容)

这种方式适配所有 BeautifulSoup 版本,不需要考虑版本限制:

# 排除class属性值为"NOT WANTED"的tr标签
x = whatever.find_all('tr', class_=lambda c: c != 'NOT WANTED')

如果你的场景中存在没有class属性的tr标签,且也需要保留这类标签,可以改成下面的写法:

x = whatever.find_all('tr', class_=lambda c: c is None or c != 'NOT WANTED')

如果你习惯使用旧版本的findAll写法,直接把find_all替换为findAll即可正常生效。

方法2:CSS :not 伪类选择器(BeautifulSoup 4.7.1及以上版本支持)

新版本的BeautifulSoup支持标准CSS伪类选择器,写法更简洁:

# 严格匹配class属性值为"NOT WANTED"的标签并排除
x = whatever.select('tr:not([class="NOT WANTED"])')

如果你需要排除的是同时带有NOT和WANTED两个类的tr标签(HTML中class属性空格分隔代表多个独立类),可以改成:

x = whatever.select('tr:not(.NOT.WANTED)')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:54:06