import requests
import openpyxl
from bs4 import BeautifulSoup
# Запрос у пользователя названия категорий для поиска
categories = input("Введите категории товаров через запятую: ").split(",")
# Запрос у пользователя минимальной и максимальной цены для поиска товаров
min_price = int(input("Введите минимальную цену товара: "))
max_price = int(input("Введите максимальную цену товара: "))
# Создание пустого Excel-файла
wb = openpyxl.Workbook()
ws = wb.active
ws.append(["Название товара", "Цена со скидкой", "Цена без скидки", "Имя продавца", "Оценка товара", "Количество отзывов"])
# Определение URL-адреса страницы OZON
url = f"https://www.ozon.ru/category/{'+'.join(categories)}/"
# Параметры запроса для сортировки по цене
params = {
"price": "1",
"sort": "price"
}
# Запрос страницы и ее парсинг
response = requests.get(url, params=params)
soup = BeautifulSoup(response.content, "html.parser")
# Поиск всех товаров на странице
products = soup.find_all("div", {"class": "b5v6"})
# Обработка всех найденных товаров
for product in products:
# Получение данных о товаре
title = product.find("a", {"class": "a0c6"}).get("title")
seller = product.find("a", {"class": "a8c9"}).text.strip()
discount_price = product.find("div", {"class": "a6f8"}).text.strip()
original_price = product.find("div", {"class": "b5v8"}).text.strip()
rating = product.find("div", {"class": "a8e9"}).text.strip()
reviews = product.find("div", {"class": "a8e0"}).text.strip()
# Проверка, соответствует ли цена заданным параметрам
price = int(discount_price.replace(" ", "")) if discount_price else int(original_price.replace(" ", ""))
if min_price <= price <= max_price:
# Запись данных в Excel-файл
ws.append([title, discount_price, original_price, seller, rating, reviews])
# Сохранение Excel-файла
wb.save("C:/Users/admin/Documents/ozon.xlsx")