Beautiful Soup - find_next_siblings() Method



Method Description

The find_next_siblings() method is similar to next_sibling property. It finds all siblings at the same level of this PageElement that match the given criteria and appear later in the document.

Syntax

find_fnext_siblings(name, attrs, string, limit, **kwargs)

Parameters

  • name − A filter on tag name.

  • attrs − A dictionary of filters on attribute values.

  • string − The string to search for (rather than tag).

  • limit − Stop looking after specified number of occurrences have been found.

  • kwargs − A dictionary of filters on attribute values.

Return Type

The find_next_siblings() method returns a list of Tag objects or a NavigableString objects.

Example 1

Let us use the following HTML snippet for this purpose −

<p>
   <b>
      Excellent
   </b>
   <i>
      Python
   </i>
   <u>
      Tutorial
   </u>
</p>

In the code below, we try to find all the siblings of <b> tag. There are two more tags at the same level in the HTML string used for scraping.

from bs4 import BeautifulSoup
soup = BeautifulSoup("<p><b>Excellent</b><i>Python</i><u>Tutorial</u></p>", 'html.parser')

tag1 = soup.find('b')
print ("next siblings:")
for tag in tag1.find_next_siblings():
    print (tag)

Output

The ResultSet of find_next_siblings() is being iterated with the help of for loop.

next siblings:
<i>Python</i>
<u>Tutorial</u>

Example 2

If there are no siblings to be found after a tag, this method returns an empty list.

from bs4 import BeautifulSoup

soup = BeautifulSoup("<p><b>Excellent</b><i>Python</i><u>Tutorial</u></p>", 'html.parser')

tag1 = soup.find('u')
print ("next siblings:")
print (tag1.find_next_siblings())

Output

next siblings:
[]
Advertisements