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
4
thumb_down
1
chat_bubble_outline
0
Comment auto_stories Bi-column layout
settings
Finding elements that contain a specific text 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 contain a specific text in Beautiful Soup, we can use find_all(~)
method together with a lambda function.
Consider the following HTML document:
my_html = """ <p>Alex Bob Cathy</p> <p>Chris</p>"""soup = BeautifulSoup(my_html)
To find all tags that contain the substring "Bob"
:
Explanation
Let's break down what we're doing here. Here's the first line:
We're passing in an anonymous function as the sole argument. Explicitly, this is equivalent to the following:
Our foo
function is called for every tag in the HTML document, and only those that return a True
is included in the result.
Here's the first criteria we set:
This ensure that the tag does not contain any child elements. Without this criteria, the top-level tag would also be returned as it obviously includes the text "Bob".
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
4
thumb_down
1
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!