【问题标题】:Match multiple CSS classes [duplicate]匹配多个CSS类[重复]
【发布时间】:2015-09-10 23:28:25
【问题描述】:
是否有用于匹配多个类的标签的选择表达式?
考虑以下 HTML sn-p:
<div id="top">
<div class="foo bar"></div>
</div>
我可以将它与soup.select('div#top div.foo') 或soup.select('div#top div.bar') 匹配。
但我需要两个班级都在那里。
有没有这样的表达方式?
【问题讨论】:
标签:
python
css-selectors
beautifulsoup
【解决方案1】:
根据CSS Spec,以下规则匹配任何div 元素,其class 属性已分配一个空格分隔值列表,其中包括foo 和bar:
div.foo.bar
BeautifulSoup 也遵循此规范,因此您可以使用:
soup.select('div#top div.foo.bar')
【解决方案2】:
您可以链接类选择器。 .foo.bar 表示只选择具有foo 类和bar 类的元素
soup.select('div#top div.foo.bar')