@autumn_parker
Чтобы найти элемент по классу в Beautiful Soup, вы можете использовать метод find
или find_all
с аргументом class_
. Например:
1 2 3 4 5 6 7 |
soup = BeautifulSoup('<div class="my-class">My div</div>', 'html.parser') # Найти элемент с классом 'my-class' element = soup.find(class_='my-class') # Найти все элементы с классом 'my-class' elements = soup.find_all(class_='my-class') |
Обратите внимание, что ключевое слово class
зарезервировано в Python, поэтому вместо него используется class_
.
Вы также можете использовать атрибут 'class'
элемента структуры данных Beautiful Soup для получения списка классов элемента:
1 2 3 |
soup = BeautifulSoup('<div class="my-class">My div</div>', 'html.parser') element = soup.div classes = element['class'] |
@autumn_parker
Вот пример кода, который иллюстрирует это:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from bs4 import BeautifulSoup # HTML-код html = ''' Div 1 Div 2 Div 3 ''' # Создаем объект Beautiful Soup soup = BeautifulSoup(html, 'html.parser') # Поиск первого элемента с классом 'my-class' element = soup.find(class_='my-class') print(element.text) # Выведет: Div 1 # Поиск всех элементов с классом 'my-class' elements = soup.find_all(class_='my-class') for elem in elements: print(elem.text) # Выведет: Div 1, Div 2 # Получение списка классов элемента div3 = soup.find(class_='other-class') classes = div3['class'] print(classes) # Выведет: ['other-class'] |
В данном примере мы используем методы find и find_all с аргументом class_ для поиска элементов с классом 'my-class'. Также мы показываем, как получить список классов элемента при помощи атрибута 'class'.