Как найти элемент по классу в beautifulsoup?

Пользователь

от autumn_parker , в категории: Python , 2 года назад

Как найти элемент по классу в beautifulsoup?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vladimir , 2 года назад

@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']


Пользователь

от brook , год назад

@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'.