У меня следующая ситуация
from bs4 import BeautifulSoup
html = '''<span class='generic'><span>Hey</span><span>Joe</span></span>'''
soup = BeautifulSoup(html, 'lxml')
tag = soup.find('span', text="HeyJoe")
print(tag)
Какая печать None
.
Но если я запускаю
soup.find('span', text="Hey").parent.text
, он возвращает HeyJoe
, поэтому он возвращает «полный» текст, включая детский текст.Я полагал, что параметр text=
функции find()
также будет искать в «полном» тексте, то есть в теге .text
.
Мне нужно найти родительский тег span
(класс с классом generic
).
Я хотел бы сделать это, вызвав функцию BeautifulSoup, которая выполняет поиск в элементе .text
.Так что он будет объединять текст во всех дочерних тегах перед поиском.Есть ли такая функция?
- Я не могу использовать класс для поиска тега, потому что в реальном случае это очень общий класс, широко используемый многими тегами
- Я не хотел бы искать детей
span
с текстом Hey
, а затем извлекать родительский элемент, поскольку в реальном случае это также довольно типично.
Нет ли способаискать в атрибуте .text
элемента?