select()
возвращает список результатов, независимо от того, содержит ли результат 0 элементов.Поскольку объект list
не имеет атрибута text
, он дает вам AttributeError
.
Аналогично, prettify()
должен сделать html более читабельным, а не способ интерпретировать list
.
. Если вам нужно только извлечь text
sкогда доступно:
texts = [''.join(i.stripped_strings) for i in x if i]
# ['5 times', '6 times']
Это удаляет все лишние символы пробела / новой строки в строке и дает вам только пустой текст.Последний if i
указывает на возвращение text
, только если i
не None
.
Если вы действительно заботитесь о пробелах / символах новой строки, сделайте это вместо:
texts = [i.text for i in x if i]
# ['\n 5 times\n ', '\n 6 times\n ']