我遇到的情况,我通过值在一个美丽的汤结果集搜索和处理他们不同,这取决于它们的内容,如:如何从一个美丽的汤结果集中删除重复的值,同时保持秩序?
for i in bs_result_set:
if 'this unique string' in i.text:
print 'aaaa'
else:
print 'bbbb'
不过,我已经意识到,得天独厚的条件实际上是在结果中出现了两次设置,但我不需要第二个复制值,因此想要从结果集中移除它首先。
我已经尝试了在list
中删除重复值的方法(虽然保留了顺序),但这些似乎不适用于美丽的汤料结果集的对象。例如,我使用的逻辑从this post尝试:
from collections import OrderedDict
OrderedDict.fromkeys(bs_result_set).keys()
但是,这似乎并没有删除重复值。
所以我的问题是如何从一个美丽的汤结果集中删除重复的值,同时保持秩序?
什么定义重复虽然?属性值是否相等?或者只是属性名称?文本内容应该完全匹配还是只有两者具有相同的子字符串?嵌套元素呢? – 2013-05-02 10:56:29
好问题,这些值是完全重复的,它们都是包含大量文本,html标记和评论的div。 – user1063287 2013-05-02 11:01:43
有趣的是'OrderedDict.fromkeys()'技巧不适合你; BS4'Tag'元素定义了如此的平等;相同的名称,相同的属性(名称和值)和相同的内容(递归测试)。你可以测试'elemA == elemB'对于你认为重复的元素是否为'True'? – 2013-05-02 11:52:39