Как найти элементы по классу
У меня проблемы с анализом html-элементов с атрибутом "class" с помощью Beautifulsoup.
Вы можете легко найти по одному классу, но если вы хотите найти по пересечению двух классов, это немного сложнее,
Из документации (выделение добавлено):
Если вы хотите искать теги, которые соответствуют двум или более классам CSS, вам следует использовать селектор CSS:
css_soup.select("p.strikeout.body")
# [<p class="body strikeout"></p>]
Для ясности, здесь выбираются только те теги p, которые являются зачеркнутыми и классом тела.
Чтобы найти для пересечения любой в наборе классов (не пересечение, а объединение), вы можете дать список аргументу ключевого слова class_
(по состоянию на 4.1.2) :
soup = BeautifulSoup(sdata)
class_list = ["stylelistrow"] # can add any other classes to this list.
# will find any divs with any names in class_list:
mydivs = soup.find_all('div', class_=class_list)
Также обратите внимание, что findAll был переименован из camelCase в более Pythonic find_all
.