如何使用beauthulsoup从具有多个类的元素中删除单个类

2024-04-26 05:02:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望从具有多个类名的元素中删除一个类名,如下所示:

<li class="name1 name2 name3">
    <a href="http://www.somelink.com">link</a>
</li>

我可以用beauthulsoup删除类,方法如下:

^{pr2}$

但这会删除所有的类,而不仅仅是我想丢失的类。在

任何帮助都将不胜感激。在

谢谢


Tags: 方法comhttp元素wwwlinkliclass
2条回答

从你的html,你可以看到

 print soup.find(class_="name3").attrs
 {'class': ['name1', 'name2', 'name3']}

所以,soup.find(class_="name3")['class']只返回一个列表。您可以从中移除元素,就像从列表中移除元素一样。就像

^{pr2}$

这将删除要丢失的类。

可以使用生成器表达式重新生成要保留的类名

s = 'name1 name2 name3'
s = ' '.join(i for i in s.split() if i != 'name3')

>>> s
'name1 name2'

相关问题 更多 >