有没有办法使用 BeautifulSoup 来匹配仅具有指示class
属性的标签,而不是指示class
属性等?例如,在这个简单的 HTML 中:
<html>
<head>
<title>
Title here
</title>
</head>
<body>
<div class="one two">
some content here
</div>
<div class="two">
more content here
</div>
</body>
</html>
是否可以只匹配div
withclass="two"
而不匹配div
with class="one two"
?除非我遗漏了什么,否则文档的该部分不会给我任何想法。这是我目前使用的代码:
from bs4 import BeautifulSoup
html = '''
<html>
<head>
<title>
Title here
</title>
</head>
<body>
<div class="one two">
should not be matched
</div>
<div class="two">
this should be matched
</div>
</body>
</html>
'''
soup = BeautifulSoup(html)
div_two = soup.find("div", "two")
print(div_two.contents[0].strip())
我试图让它打印this should be matched
而不是should not be matched
.
编辑:在这个简单的例子中,我知道类的唯一选项是"one two"
or "two"
,但在生产代码中,我只知道我想要匹配的将有 class "two"
; 除了 之外,其他标签可能还有大量其他类"two"
,这可能是未知的。