Мне нужно извлечь данные из родительского тега независимо от дочерних тегов, используя Python. Из приведенного ниже кода мне нужно получить «Привет, это родительский тег», не получая «Привет, это дочерний тег». Как я могу это сделать?
<html>
<div>
"Hi, this is parent tag"
<span> "Hi, this is child tag" </span>
</div>
</html>






from bs4 import BeautifulSoup
txt = """
<html>
<div>
"Hi, this is parent tag"
<span> "Hi, this is child tag" </span>
</div>
</html>
"""
soup = BeautifulSoup(txt)
for node in soup.findAll('div'):
print(' '.join(node.findAll(text=True, recursive=False)))
ВЫВОД:
"Hi, this is parent tag"
Привет. Спасибо, это работает! Другой вопрос, есть ли более короткий способ сделать это?
@SrushtiMehatkar Это было самое короткое, что я мог рассказать, вы можете принять ответ, если он помог! ваше здоровье
Вы можете использовать синтаксис xpath пакета lxml
txt = """
<html>
<div>
"Hi, this is parent tag"
<span> "Hi, this is child tag" </span>
</div>
</html>
"""
from lxml.html.soupparser import fromstring
tree = fromstring(txt)
print tree.xpath("//div/text()")
Хорошая подсказка источника https://devhints.io/xpath
используйте
$(this).parent()