Search on blog:

BeautifulSoup: Jak pobrać tekst z tagu

Jest kilka róznych funkcji do pobierania tekstu z tagu.

.text - cały tekst z tagu i podtagów

.string - tylko jeśli nie ma podtagów

.get_text(strip, separator) - można usunąć białe znaki i dodać separator, który może być użyty do podzielenia na listę.

from bs4 import BeautifulSoup as BS

soup = BS('''<tag>text
<a>link</a>
other</tag>''', "html.parser")

data = soup.find('tag')
print(data)
print('-----------')
print('    text:', data.text)
print('  string:', data.string)
print('get_text:', data.get_text(strip=False))
print('get_text:', data.get_text(strip=True))
print('get_text:', data.get_text(strip=True, separator='|'))
print('get_text:', data.get_text(strip=True, separator='|').split('|'))
print('-----------')
print('    a.text:', data.a.text)
print('  a.string:', data.a.string)
print('a.get_text:', data.a.get_text(strip=False))
print('a.get_text:', data.a.get_text(strip=True))
print('a.get_text:', data.a.get_text(strip=True, separator='|'))
print('a.get_text:', data.a.get_text(strip=True, separator='|').split('|'))
print('-----------')

Wynik:

<tag>text
<a>link</a>
other</tag>
-----------
    text: text
link
other
  string: None
get_text: text
link
other
get_text: textlinkother
get_text: text|link|other
get_text: ['text', 'link', 'other']
-----------
    a.text: link
  a.string: link
a.get_text: link
a.get_text: link
a.get_text: link
a.get_text: ['link']
-----------
If you like it
Buy a Coffee