我希望从具有多个类名的元素中删除单个类名,如下所示:
<li class="name1 name2 name3">
<a href="http://www.somelink.com">link</a>
</li>
我可以使用beautifulsoup以下列方式删除类:
soup.find(class_="name3")["class"] = ""
但这会删除所有课程,而不仅仅是我想要丢失的课程。
非常感谢任何帮助。
由于
答案 0 :(得分:1)
您可以使用生成器表达式来重建要保留的类名
s = 'name1 name2 name3'
s = ' '.join(i for i in s.split() if i != 'name3')
>>> s
'name1 name2'
答案 1 :(得分:1)
从你的html中,你可以看到,
print soup.find(class_="name3").attrs
{'class': ['name1', 'name2', 'name3']}
因此,soup.find(class_="name3")['class']
只返回一个列表。您可以从中删除元素,因为您可以从列表中删除元素。等,
soup.find(class_="name3")["class"].remove('name1')
这将删除您想要丢失的课程。