在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
相关产品推荐
相关产品推荐

