Комментарии - это узлы, как и все остальное:
from BeautifulSoup import BeautifulSoup
from BeautifulSoup import Comment
from BeautifulSoup import NavigableString
text = BeautifulSoup("""<!--comment--><div>a</div><div>b</div><div>c</div>
<!--comment--><div>a</div><div>b</div><div>c</div>""")
comments = text.findAll(text=lambda elm: isinstance(elm, Comment))
for comment in comments:
next_sib = comment.nextSibling
while not isinstance(next_sib, Comment) and \
not isinstance(next_sib, NavigableString) and next_sib:
# This prints each sibling while it isn't whitespace or another comment
# Append next_sib to a list, dictionary, etc, etc and
# do what you want with it
print next_sib
next_sib = next_sib.nextSibling
EDIT:
Он не обнаруживает идентичные комментарии (текст комментария?), Но вы можете решить это, проверив, идентичен ли текст комментария предыдущему блоку комментария.