Markup :
<div class = "parent-div">
<div class = "child-1">
<div class = "child-1.1">
</div>
</div>
<div class = "child-2">
<div class = "child-2.1">
</div>
</div>
</div>
I want to get a list of the direct children of the div[parent-div]
i.e. a list as:
[div class = "child-1">
<div class = "child-1.1">
</div>
</div>,<div class = "child-2">
<div class = "child-2.1">
</div>
</div>]
I am using below BeautifulSoup code:
page_soup = soup(page_html,"html.parser")
main_cont = page_soup.find('div',{'class':'parent-div'}).findAll('div')
This code gives me the list of all divs:
[<div class = "child-1">
<div class = "child-1.1">
</div>
</div>,<div class = "child-1.1">
</div>,<div class = "child-2">
<div class = "child-2.1">
</div>
</div>,<div class = "child-2.1">
</div>]
How do i get a list of just the immediate children of the parent div?
You can use findChildren()
method for getting children tags .
main_cont = soup.find('div',{'class':'parent-div'}).findChildren('div',recursive=False)
Output :
[<div class="child-1"><div class="child-1.1"></div></div>, <div class="child-2"><div class="child-2.1"> </div></div>]