在BeautifulSoup 4.7.0+中,可以使用CSS选择器和Python列表推导式来选择其中一个属性中不包含指定文本的所有元素。
首先,导入BeautifulSoup库并加载HTML文档:
from bs4 import BeautifulSoup
html = """
<html>
<body>
<div class="element" title="example">Element 1</div>
<div class="element" title="example">Element 2</div>
<div class="element" title="other">Element 3</div>
</body>
</html>
"""
soup = BeautifulSoup(html, 'html.parser')
接下来,使用CSS选择器和Python列表推导式来选择属性为title
且不包含指定文本的所有元素:
elements = [element for element in soup.select('.element[title]:not(:contains("example"))')]
解析:
.element[title]
选择所有class
为element
且存在title
属性的元素。:not(:contains("example"))
排除包含指定文本"example"的元素。最后,你可以遍历elements
列表并访问元素的属性或内容:
for element in elements:
print(element.text)
输出:
Element 3
关于这个问题,腾讯云没有直接相关的产品和产品介绍链接地址。
领取专属 10元无门槛券
手把手带您无忧上云