【发布时间】:2016-10-04 19:13:56
【问题描述】:
如果我有这样的事情:
<div>
<a>Link</a>
</div>
<div>
<a>Link</a>
</div>
我想删除其中一个 div 标签(包括所有内容和子标签),因为这两个 div 标签,包括它们的内容,是相同的。仅应比较彼此相邻的标签,并最终删除其中一个。这也应该递归工作。例如,如果我有这样的事情:
<div>
<a>Link</a>
<a>Link</a>
</div>
<div>
<a>Link</a>
</div>
只应删除第一个 div 中的一个 a 链接。
我尝试用 BeautifulSoup 解决这个问题,代码如下:
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)
但是代码需要很长时间才能执行。
如我所述,有什么快速删除重复标签的方法吗?
【问题讨论】:
标签: python tags beautifulsoup