Python移除HTML标签,如果下一个兄弟节点是相同的,则连同内容一起删除

2024-10-17 08:37:17 发布

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

如果我有这样的东西:

<div>
<a>Link</a>
</div>
<div>
<a>Link</a>
</div>

我想删除其中一个div标记(包括所有内容和子标记),因为这两个div标记,包括它们的内容,是相同的。只有相邻的标记才应该被比较,并最终删除其中一个。这也应该是递归的。例如,如果我有这样的东西:

^{pr2}$

只应删除第一个div中的一个a链接。在

我尝试用beauthulsoup解决这个问题,代码如下:

def removeDuplicates(items):
    for item in items:
        if item==item.nextSibling:
            item.extract()
        else:
            children = item.findChildren()
            removeDuplicates(children)

body = soup.find('body')
items = body.findChildren()
removeDuplicates(items)

但是代码需要很长时间才能执行。在

有没有像我描述的那样快速删除重复标记的方法?在


Tags: 代码标记div内容链接deflinkitems