Трудность анализа этого сайта заключается в отсутствии иерархии элементов заголовка и игр, которые вы хотите проанализировать. Все они являются содержимым одного элемента.
Используйте следующий селектор CSS, чтобы получить элемент h3 и интервалы с классом содержимого поля в один массив
games = soup.select("h3, span.field-content")
Вывод:
[<h3>Ma 28.10.2019 runkosarja</h3>,
<span class="field-content">Chicago - Los Angeles</span>,
<span class="field-content">NY Islanders - Philadelphia</span>,
<span class="field-content">NY Rangers - Boston</span>,
<span class="field-content">Ottawa - San Jose</span>,
<span class="field-content">Vegas - Anaheim</span>,
<h3>Ti 29.10.2019 runkosarja</h3>,
...
]
Теперь вы можете использовать следующий код для группировки игры по дате
from collections import defaultdict
dates_with_games = defaultdict(list)
for e in games:
if (e.name == 'h3'):
latestH3 = e.text
else:
dates_with_games[latestH3].append(e.text)
Вы получаете словарь, который выглядит следующим образом
{'Ma 28.10.2019 runkosarja':
['Chicago - Los Angeles',
'NY Islanders - Philadelphia',
'NY Rangers - Boston',
'Ottawa - San Jose',
'Vegas - Anaheim'],
'Ti 29.10.2019 runkosarja':
['Buffalo - Arizona',
'Vancouver - Florida'],...
}