alecxe
alecxe

Reputation: 474031

Differences between .text and .get_text()

In BeautifulSoup, is there any difference between .text and .get_text()?

Which one should be preferred for getting element's text?

>>> from bs4 import BeautifulSoup
>>>
>>> html = "<div>text1 <span>text2</span><div>"
>>> soup = BeautifulSoup(html, "html.parser")
>>> div = soup.div
>>> div.text
'text1 text2'
>>> div.get_text()
'text1 text2'

Upvotes: 31

Views: 14769

Answers (1)

mgilson
mgilson

Reputation: 310069

It looks like .text is just a property that calls get_text. Therefore, calling get_text without arguments is the same thing as .text. However, get_text can also support various keyword arguments to change how it behaves (separator, strip, types). If you need more control over the result, then you need the functional form.

Upvotes: 40

Related Questions