Kodduu Python: post #1546 — TG.ME

🔥 BeautifulSoup: Умный парсинг HTML и веб-скрапинг


from bs4 import BeautifulSoup
from typing import List, Dict

# Пример HTML (можно заменить на requests.get(url).text)
html_example = """
<html>
<head><title>Каталог товаров</title></head>
<body>
<h1>Наши продукты</h1>
<div class="product">
<h2>Ноутбук ASUS</h2>
<p class="price">74990 ₽</p>
<a href="/product/123">Подробнее</a>
</div>
<div class="product">
<h2>Смартфон Xiaomi</h2>
<p class="price">32990 ₽</p>
<a href="/product/456">Подробнее</a>
</div>
</body>
</html>
"""

def parse_products(html: str) -> List[Dict]:
"""Парсит HTML и извлекает товары по классам и тегам."""
soup = BeautifulSoup(html, "html.parser")
products = []

for item in soup.find_all("div", class_="product"):
try:
product = {
"title": item.find("h2").get_text(strip=True),
"price": item.find("p", class_="price").get_text(strip=True),
"link": item.find("a")["href"]
}
products.append(product)
except AttributeError:
continue # пропускаем некорректные блоки
return products

if __name__ == "__main__":
try:
products = parse_products(html_example)
print(f" Найдено товаров: {len(products)}\n")
for p in products:
print(f"📦 {p['title']}")
print(f" Цена: {p['price']}")
print(f" Ссылка: {p['link']}\n")
except Exception as e:
print(f" Ошибка парсинга: {e}")

📌 BeautifulSoup превращает любой HTML в удобный объект для поиска по тегам, классам, id и тексту. Никаких регулярных выражений — только понятные методы. Идеально для скрапинга сайтов, парсинга прайсов, новостей и автоматизации сбора данных.

🛠 pip install beautifulsoup4

Подпишись 👉🏻 @KodduuPython 🤖
July 24, 2026 160 3