near_me
Linear Algebra
keyboard_arrow_down 54 guides
chevron_leftFinding elements Cookbook
Finding elements by classFinding elements by idFinding elements that are direct descendantsFinding elements that contain a specific textFinding elements by tag nameFinding elements that contain all the specified classesFinding elements that only contain specific attributes and no other attributesFinding elements using regular expressionLimiting the number of returned resultsFinding elements by attribute
check_circle
Mark as learned thumb_up
0
thumb_down
0
chat_bubble_outline
0
Comment auto_stories Bi-column layout
settings
Finding elements that are direct descendants in Beautiful Soup
schedule Aug 12, 2023
Last updated local_offer
Tags Python●Beautiful Soup
tocTable of Contents
expand_more Master the mathematics behind data science with 100+ top-tier guides
Start your free 7-days trial now!
Start your free 7-days trial now!
To find elements that are direct descendants in Beautiful Soup, use the find_all(~)
method, passing through recursive=False
.
Consider the following HTML document:
my_html = """ <div id="people"> <p>Alex</p> <div> <p>Bob</p> <p>Cathy</p> </div> <div>"""
soup = BeautifulSoup(my_html)
By default, the find_all(~)
method looks for matches recursively:
for el in soup.find(id="people").find_all("p"): print(el)
<p>Alex</p><p>Bob</p><p>Cathy</p>
To look for matches that are direct descendants only, set recursive=False
, like so:
for el in soup.find(id="people").find_all("p", recursive=False): print(el)
<p>Alex</p>
Here, there is only one element with the p
tag that is directly under the <div id="people">~</div>
.
Published by Isshin Inada
Edited by 0 others
Did you find this page useful?
thumb_up
thumb_down
Comment
Citation
Ask a question or leave a feedback...
thumb_up
0
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!