如果我有这样的东西:
<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)
但是代码需要很长时间才能执行。在
有没有像我描述的那样快速删除重复标记的方法?在
我的代码运行缓慢,因为我假设
.findChildren()
只获取直接子级(下面的第一级),但实际上它得到了所有子级(来自所有级别)。因此,解决方案是从代码中删除以下行:相关问题 更多 >
编程相关推荐