Python Try Except. Обработать 2 одинаковых исключения подряд

Пишу парсер для сайта, где на разных страницах в одном и том же месте блоки имеют разное название. Пытаюсь это обойти при помощи try - except, но в результате все равно получаю ошибку: AttributeError: 'NoneType'. Подскажите, как обработать 2 одинаковых исключения подряд?

        try:
        # Попробуй тэг "gray db"
        db_count = tr.find('td', class_='gray db').text.strip()
        print(db_count)
    except AttributeError:
        # Если нет "gray db", попробуй "gray db rowspan"
        db_count = tr.find('td', class_='gray db rowspan').text.strip()
        print(db_count)
    except AttributeError:
    # Если нет и "gray db rowspan", то запиши "неогранич."
        db_count = 'неогранич.'
        print(db_count)

Ответы (2 шт):

Автор решения: Jack_oS
tr.find('td', class_='gray db')

найдет все атрибуты td с классами и gray db, и gray db rowspan

Дело не в except, скорее всего, а в динамически подгружаемых данных на странице.

Но если нужно найти разные class_ , то два раза

except AttributeError

не отработает, работа завершиться после после первого исключения. Вы можете использовать вложение, например:

try:
# Попробуй тэг "gray db"
db_count = tr.find('td', class_='gray db').text.strip()
print(db_count)
except AttributeError:
    try:
        # Если нет "gray db", попробуй "rowspan"
        db_count = tr.find('td', class_='rowspan').text.strip()
        print(db_count)
    except AttributeError:
        # Если нет и "rowspan", то запиши "неогранич."
        db_count = 'неогранич.'
        print(db_count)
→ Ссылка
Автор решения: vadim vaduxa

если требуется обработать что-то такое однотипное, и проверок достаточно много, то удобнее в цикле сделать

for c in ['gray db', 'gray db rowspan', '...', , '...', '...', '...']:
    try:
        db_count = tr.find('td', class_=c).text.strip()
    except AttributeError:
        continue
    else:
        break
else:
    db_count = 'неогранич.'
→ Ссылка