Попробуйте следующее.Также проверьте переменную супа, потому что я могу без проблем запустить ваш код.Я подозреваю, что где-то позже в HTML у вас нет одного из них, присутствующих в строке.
Если имена классов согласованы, вы можете фильтровать только подходящие строки, имеющие соответствующие элементы типа с этими классами..Использование bs4 4.7.1.
for row in table.select('tr :has(span.text-grey):has(a.all)'):
movies.append({
'spn_title' : row.select_one('.all').text,
'eng_title' : row.select_one('.text-grey').text
})
print(movies)
В противном случае вам нужен способ обработки, если он отсутствует.Например,
for row in table.find_all('tr')[1:]:
movies.append({
'spn_title' : row.select_one('.all').text if row.select_one('.all') is not None else 'None',
'eng_title' : row.select_one('.text-grey').text if row.select_one('.text-grey') is not None else 'None'
})
print(movies)