Теги BeautifulSoup не отслеживают их порядок на странице, нет. Вам нужно будет снова перебрать все теги и найти два своих тега в этом списке.
Использование стандартного sample BeautifulSoup tree:
>>> tag1 = soup.find(id='link1')
>>> tag2 = soup.find(id='link2')
>>> tag1, tag2
(<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>)
>>> all_tags = soup.find_all(True)
>>> all_tags.index(tag1)
6
>>> all_tags.index(tag2)
7
Я хотел бы использовать tag.find_all()
с функцией, чтобы соответствовать оба типа тегов вместо; таким образом, вы получите список тегов, и может видеть их относительный порядок:
tag_match = lambda el: (
getattr(el, 'name', None) in ('tagname1', 'tagname2') and
el.attrs.get('attributename') == 'something' and
'classname' in el.attrs.get('class')
)
tags = soup.find(tag_match)
или вы можете использовать .next_siblings
итератор для перебора всех элементов в одной и той же материнской компании и посмотреть, если разделителем идет дальше, и т.д.