To find elements without a specific attribute using BeautifulSoup, we use the attrs
parameter of the function find
, and we specify the attributes as None
.
For example, to find the paragraph element without a class name, we set attrs={"class": None}
:
import requests
from bs4 import BeautifulSoup
html_content = '''
<p class="clean-text">A very long clean paragraph</p>
<p class="dark-text">A very long dark paragraph</p>
<p>A very long paragraph without attribute</p>
<p class="light-text">A very long light paragraph</p>
'''
soup = BeautifulSoup(html_content, 'html.parser')
no_class_attribute = soup.find("p", attrs={"class": None})
print(no_class_attribute)
# Output: <p>A very long paragraph without attribute</p>