import requests
from bs4 import BeautifulSoup
def parse_allegro(category, subcategory, filters):
# Собираем URL для запроса
# Применяем фильтры
for filter, value in filters.items():
url += f"&{filter}={value}"
# Отправляем GET-запрос
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# Находим все карточки товаров на странице
product_cards = soup.find_all('div', class_='listing-item')
products = []
# Итерируемся по каждой карточке товара
for card in product_cards:
# Получаем данные о товаре
product_info = {}
# Название товара
product_info['title'] = card.find('h2', class_='title').text.strip()
# Цена товара
product_info['price'] = card.find('span', class_='price').text.strip()
# Описание товара
product_info['description'] = card.find('div', class_='description').text.strip()
# Ссылка на карточку товара
product_info['url'] = card.find('a', class_='title')['href']
# Рейтинг товара (если доступно)
rating = card.find('span', class_='rating')
if rating:
product_info['rating'] = rating.text.strip()
# Количество заказов (если доступно)
orders = card.find('span', class_='orders-amount')
if orders:
product_info['orders'] = orders.text.strip()
# Характеристики товара (если доступно)
features = card.find('div', class_='features')
if features:
product_info['features'] = features.text.strip()
# Ссылки на изображения товара
images = card.find_all('img', class_='photo-box__img')
product_info['images'] = [img['src'] for img in images]
# Добавляем данные о товаре в список продуктов
products.append(product_info)
return products
# Пример использования функции
# Указываем категорию, подкатегорию и фильтры
category = "telefony-komorkowe-smartfony"
subcategory = "smartfony"
filters = {
"price_from": "1000",
"price_to": "2000",
"rating_from": "4",
"brand": "Samsung"
}
# Парсим данные с сайта Allegro
parsed_data = parse_allegro(category, subcategory, filters)
# Выводим результаты
for product in parsed_data:
print("Название товара:", product['title'])
print("Цена товара:", product['price'])
print("Описание товара:", product['description'])
print("Ссылка на карточку товара:", product['url'])
print("Рейтинг товара:", product.get('rating'))
print("Количество заказов:", product.get('orders'))
print("Характеристики товара:", product.get('features'))
print("Ссылки на изображения товара:", product['images'])
print("------------------------------------")