В этом случае вы можете использовать t.contents[1].contents[0]
, чтобы получить FOO и BAR.
Дело в том, что содержимое возвращает список со всеми элементами (теги и NavigableStrings), если вы печатаете содержимое, вы можете увидеть, что это что-то вроде
[u'\n', <a href="more.asp">FOO</a>, u'\n']
Итак, чтобы перейти к фактическому тегу, вам необходим доступ к contents[1]
(если у вас точно такое же содержимое, это может варьироваться в зависимости от исходного HTML), после того как вы найдете правильный индекс, который вы можете использовать contents[0]
впоследствии, чтобы получить строку внутри тега.
Теперь, поскольку это зависит от точного содержимого источника HTML, оно очень хрупкое. Более общим и надежным решением было бы снова использовать find()
, чтобы найти тег 'a', через t.find('a')
, а затем использовать список содержимого для получения значений в нем t.find('a').contents[0]
или просто t.find('a').contents
, чтобы получить целое список.