Привет! Похоже, передо мной стоит задача извлечения информации о товаре из HTML-кода с помощью библиотеки BeautifulSoup в Python. Давай разберёмся, что нужно сделать.
- Сначала надо убедиться, что мы корректно импортировали BeautifulSoup и создали объект bs, передав ему HTML-код и тип парсера. Это уже сделано в строках:
from bs4 import BeautifulSoup
bs = BeautifulSoup(a, 'html.parser')
- Теперь нам нужно извлечь название товара и его цену. Видно, что название заключено в тег
<h4>с классомcard-title, а цена в тег<h5>.
Для получения значения внутри тега можно использовать метод find объекта bs, указав имя тега и класс (если это необходимо). Итак, допишем код:
itemName = bs.find('h4', class_='card-title').text
itemPrice = bs.find('h5').text
- В итоговой строке принта помимо значений переменных itemPrice и itemName видны фигурные скобки без плейсхолдера и лишняя закрывающая скобка. Для работы строки форматирования добавим фигурные скобки с плейсхолдерами внутри, где они требуются, чтобы подставить значения переменных. Также уберём лишнюю скобку:
print(f'{itemPrice} за {itemName}')
Таким образом, весь код должен выглядеть примерно так:
from bs4 import BeautifulSoup
a = '''<div class="card-body">
<h4 class="card-title">1 кг яблок</h4>
<h5>240 р.</h5>
</div>'''
bs = BeautifulSoup(a, 'html.parser')
itemName = bs.find('h4', class_='card-title').text
itemPrice = bs.find('h5').text
print(f'{itemPrice} за {itemName}')
Выполнив этот код, мы получим вывод цены и наименования товара.
