To access the first, second, or N-th child div element in BeautifulSoup, use the .contents
or .find_all()
methods on a parent div element. The .contents
method returns a list of children, including tags and strings, while .find_all()
returns a list of matching tags only. Simply select the desired index to obtain the child div element you need.
In Beautiful Soup, you can navigate to the first, second, or third div
within a parent div
using the .contents
or .find_all()
methods.
Here’s an example:
from bs4 import BeautifulSoup html = """ <div id="parent-div"> <div class="child-div">First child div</div> <div class="child-div">Second child div</div> <div class="child-div">Third child div</div> </div> """ soup = BeautifulSoup(html, 'html.parser') # Find the parent div parent_div = soup.find('div', {'id': 'parent-div'}) # Method 1: Using .contents first_child_div = parent_div.contents[1] second_child_div = parent_div.contents[3] third_child_div = parent_div.contents[5] print("Using .contents:") print("First child div:", first_child_div.text) print("Second child div:", second_child_div.text) print("Third child div:", third_child_div.text) # Method 2: Using .find_all() all_child_divs = parent_div.find_all('div', {'class': 'child-div'}) print("\nUsing .find_all():") print("First child div:", all_child_divs[0].text) print("Second child div:", all_child_divs[1].text) print("Third child div:", all_child_divs[2].text)
The output of this script is:
Using .contents:
First child div: First child div
Second child div: Second child div
Third child div: Third child div
Using .find_all():
First child div: First child div
Second child div: Second child div
Third child div: Third child div
π‘ Note:
The .contents
solution returns a list of the parent element’s children, including tags and strings. Note that the indexing numbers are shifted using this solution, i.e., the first element is indexed using .contents[1]
, the second with .content[3]
, and the n
-th with .contents[2*n-1]
.
The .find_all()
solution returns a list of matching tags only.
You can use either method to navigate to the first, second, or third div
within a parent div
.
Keep Learning
If you want to learn BeautifulSoup from scratch, I’d recommend you check out our academy course: