Last modified: Sep 20, 2023 By Alexander Williams

Beautifulsoup Find Div With Multiple Classes [Examples]

Find a <div> with two classes:


from bs4 import BeautifulSoup

html = """
<div class="class1 class2">This is a div with multiple classes</div>
"""

soup = BeautifulSoup(html, 'html.parser')
# Find the <div> element with both class1 and class2
result = soup.find('div', class_='class1 class2')
print(result)
    

Output:


<div class="class1 class2">This is a div with multiple classes</div>
    

Find all <div> elements with a specific class:


from bs4 import BeautifulSoup

html = """
<div class="class1">First div</div>
<div class="class2">Second div</div>
<div class="class1">Third div</div>
"""

soup = BeautifulSoup(html, 'html.parser')
# Find all <div> elements with class="class1"
results = soup.find_all('div', class_='class1')
for result in results:
    print(result)
    

Output:


<div class="class1">First div</div>
<div class="class1">Third div</div>
    

Find a <div> with multiple classes using CSS selector:


from bs4 import BeautifulSoup

html = """
<div class="class1 class2">This is a div with multiple classes</div>
"""

soup = BeautifulSoup(html, 'html.parser')
# Find the <div> element with both class1 and class2 using a CSS selector
result = soup.select_one('div.class1.class2')
print(result)
    

Output:


<div class="class1 class2">This is a div with multiple classes</div>
    

Find <div> with Multiple Classes Using BeautifulSoup's select() Method:


from bs4 import BeautifulSoup

html = """
<div class="class1 class2">This is a div with multiple classes</div>
"""

soup = BeautifulSoup(html, 'html.parser')
# Find the <div> element with both class1 and class2 using a CSS selector with select method
result = soup.select('div.class1.class2')
print(result)
    

Output:


[<div class="class1 class2">This is a div with multiple classes</div>]
    

Find a <div> with specific class and its contents:


from bs4 import BeautifulSoup

html = """
<div class="container">
    <div class="content">This is the content</div>
</div>
"""

soup = BeautifulSoup(html, 'html.parser')
# Find the <div> with class="container" and then find the nested <div> with class="content"
result = soup.find('div', class_='container').find('div', class_='content')
print(result)
    

Output:


<div class="content">This is the content</div>