匹配多个CSS类

时间:2015-06-24 16:27:51

标签: python css-selectors beautifulsoup

是否有一个select表达式用于匹配多个类的标签?

请考虑以下HTML代码段:

<div id="top">
    <div class="foo bar"></div>
</div>

我可以将其与soup.select('div#top div.foo')soup.select('div#top div.bar')匹配。

但我需要两个班级都在那里。

有表达吗?

2 个答案:

答案 0 :(得分:8)

根据CSS Spec,以下规则与div个元素已分配了包含class和{{}的空格分隔值列表的任何foo元素相匹配1}}:

bar

BeautifulSoup也遵循此规范,因此您可以使用:

div.foo.bar

答案 1 :(得分:2)

您可以链接类选择器。 foo表示只选择包含课程bar和课程soup.select('div#top div.foo.bar')

的元素
f = open ('in.txt', 'r')
out = open("out.txt", "w")
header1= f.readline()

for line in f:
    line = line.strip()
    columns = line.split()
    if len(columns) > 2:
        j=float(columns[1])
        i = columns[3]
    i=columns[3]
    out.write("%s %s\n" %(i, j))

f.close()