Как получить данные из родительского тега с помощью python

Мне нужно извлечь данные из родительского тега независимо от дочерних тегов, используя Python. Из приведенного ниже кода мне нужно получить «Привет, это родительский тег», не получая «Привет, это дочерний тег». Как я могу это сделать?

<html>
    <div>
        "Hi, this is parent tag"
        <span> "Hi, this is child tag" </span>
    </div>
</html>

используйте $(this).parent()

I_Al-thamary 28.01.2019 12:51
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
154
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
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"

Привет. Спасибо, это работает! Другой вопрос, есть ли более короткий способ сделать это?

Srushti Mehatkar 29.01.2019 08:46

@SrushtiMehatkar Это было самое короткое, что я мог рассказать, вы можете принять ответ, если он помог! ваше здоровье

DirtyBit 29.01.2019 08:54

Вы можете использовать синтаксис 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

Другие вопросы по теме