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>