Beautiful Soup | previous_element property
Start your free 7-days trial now!
In Beautiful Soup, the previous_element
property returns the previous string
or tag
in the parse tree. We will go through the subtleties of this property using examples.
Examples
Consider the following HTML document:
my_html = """ <p>Alex</p> <p id="bob">Bob</p>"""soup = BeautifulSoup(my_html)
Let's get the previous_element
of <p>Bob</p>
:
p_bob.previous_element
'\n'
The result may be surprising for those who expected to see <p>Alex</p>
. Such a result arises because there is a new line character \n
between <p>Alex</p>
and <p>Bob</p>
. To get to Alex, then, you would need to call the previous_element
yet again:
p_bob.previous_element.previous_element
'Alex'
Here, we've obtained the string (i.e. the inner text) of <p>Alex</p>
. To get the tag itself, we need to call the previous_element
yet again:
p_bob.previous_element.previous_element.previous_element
<p>Alex</p>
If you just wanted to access the previous element, then the better alternative would be to call the find_previous_sibling()
method:
<p>Alex</p>