Extract element with no class attribute

Question:

I need to navigate to an html element of a particular type.
However, there are many such elements of that type on the page, with many different classes.

I need one which does not have any class attribute.

Should I look for one with class == '', or is there some other way?

Asked By: MaxYarmolinsky

||

Answers:

Use

soup.findAll(attrs={'class': None})

Quoting from docs:

You can use attrs if you need to put restrictions on attributes whose names are Python reserved words, like class, for, or import; or attributes whose names are non-keyword arguments to the Beautiful Soup search methods: name, recursive, limit, text, or attrs itself.

Answered By: soulcheck

As of Beautiful Soup version 4.1.2, you can use the class_ keyword argument.

To select an element without a class attribute, you can just specify None:

soup.find_all(class_=None)

Alternatively, specifying False also works:

soup.find_all(class_=False)
Answered By: Josh Crozier
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.