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

在BeautifulSoup中如何将'[class="a"]'与'[id="c d"]'选择器合并到同一select命令中

在BeautifulSoup中如何将'[class="a"]'与'[id="c d"]'选择器合并到同一select命令中

当然可以啦!在BeautifulSoup里,你只需要借助CSS选择器的多属性匹配规则,直接把两个属性选择器连在一起写就行——这样就能要求元素**同时满足class为"a"且id为"c d"**的条件。

给你举个完整的例子,一看就懂:

from bs4 import BeautifulSoup

# 示例HTML
html = """
<ul class="a" id="c d">
  <li>符合条件的项目</li>
</ul>
<ul class="a">
  <li>只有class的项目</li>
</ul>
<ul id="c d">
  <li>只有id的项目</li>
</ul>
"""

# 初始化解析器
soup = BeautifulSoup(html, "html.parser")

# 合并两个属性选择器的核心写法
target_elements = soup.select('[class="a"][id="c d"]')

# 输出验证结果
for elem in target_elements:
    print(elem.get_text(strip=True))

这里要注意一个小细节:两个属性选择器之间不要加空格!如果加了空格,就变成“找class为a的元素下面的id为c d的后代元素”,完全不是我们要的“当前元素同时满足两个条件”的效果啦。

这样写之后,select命令就会精准定位到同时拥有指定class和id的元素,是不是超省心?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:20:32