name
будет ссылаться на имя тега, если объект является Tag
объектом (то есть: <html>
name = "html")
, если в разметке между ними есть пробелыузлы BeautifulSoup превратят их в NavigableString
.Поэтому, если вы используете индекс contents
для захвата узлов, вы можете получить NavigableString
вместо следующего Tag
.
Чтобы избежать этого, запросите искомый узел: Поиск в дереве разбора
или, если вы знаете имя следующего тега, который вы хотите, вы можете использовать это имя в качестве свойства, и оно вернет первый Tag
с этим именем илиNone
если детей с таким именем не существует: Использование имен тегов в качестве членов
Если вы хотите использовать contents
, вам нужно проверить объекты, с которыми вы работаете.Получаемая ошибка означает, что вы пытаетесь получить доступ к свойству name, потому что код предполагает, что это Tag