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
furas.pl