Извлечь часть текста с Beautifulsoup - PullRequest
0 голосов
/ 15 мая 2019

Как мне извлечь текст после тега "br /"? Я только о том, что этот текст, а не о том, что будет внутри "сильного" тега.

<p><strong>A title</strong><br/>
Text I want which also
includes linebreaks.</p>

Пробовал код, такой как

text_content = paragraph.get_text(separator='strong/').strip()

Но это также будет включать текст в теге "strong".

Переменная "абзац" - это bs4.element.Tag, если это не было понятно.

Любая помощь приветствуется!

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Найдите <br> тег и используйте next_element

from bs4 import BeautifulSoup

data='''<p><strong>A title</strong><br/>
Text I want which also
includes linebreaks.</p>'''

soup=BeautifulSoup(data,'html.parser')
item=soup.find('p').find('br').next_element
print(item)
1 голос
/ 15 мая 2019

Если у вас есть тег <p>, найдите в нем <br> и используйте .next_siblings

import bs4

html = '''<p><strong>A title</strong><br/>
Text I want which also
includes linebreaks.</p>'''

soup = bs4.BeautifulSoup(html, 'html.parser')

paragraph = soup.find('p')
text_wanted = ''.join(paragraph.find('br').next_siblings)

print (text_wanted)

Выход:

print (text_wanted)

Text I want which also
includes linebreaks.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...