Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Beautiful Soup (bs4) match just one, and only one, css class

I am using following code to match all div that have CSS class "ad_item".

soup.find_all('div',class_="ad_item")

problem that I have is that, on that web page, there are also div that have CSS class set to "ad_ex_item" and "ad_ex_item".

<div class="ad_item ad_ex_item">

In documentation it is stated:

When you search for a tag that matches a certain CSS class, you’re matching against any of its CSS classes:

So how can I match div, that have only "ad_item", and do not have "ad_ex_item".

Or to put this in another way, how to search for div that have only CSS class "ad_item" ?

like image 497
WebOrCode Avatar asked Dec 07 '22 09:12

WebOrCode


1 Answers

You can use strict conditions like this:

soup.select("div[class='ad_item']")

That catch div with exact class. In this case with only 'ad_item' and no others joined by spaces classes.

like image 105
ctrl Avatar answered May 17 '23 09:05

ctrl