/
Vitmgn
/
mytest
Обзор
Документация
Войти
/
Vitmgn
/
mytest
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
mpa.py
64 строки
3 KB
Vitmgn
update mpa.py
02 фев 2025, 12:54
02 фев 2025, 12:54
3b36139
Код
Авторство
О чём код?
import time from DrissionPage import ChromiumPage # Создаем объект страницы для управления браузером page = ChromiumPage() # Настройка параметров url = "https://www.ozon.ru/category/python-pentest/" # URL страницы с товарами max_requests_per_second = 2 # Максимальное количество запросов в секунду request_count = 0 # Счетчик запросов start_time = time.time() # Время начала выполнения # Функция для ограничения частоты запросов def limit_requests(): global request_count, start_time request_count += 1 # Если прошло меньше секунды и достигнут лимит запросов, добавляем задержку if request_count >= max_requests_per_second and (time.time() - start_time) < 1: time.sleep(1 - (time.time() - start_time)) # Добавляем задержку до конца секунды request_count = 0 # Сбрасываем счетчик start_time = time.time() # Обновляем время начала elif (time.time() - start_time) >= 1: request_count = 1 # Сбрасываем счетчик, если прошла секунда start_time = time.time() # Открываем страницу и извлекаем данные for i in range(1): # Пример: выполняем 1 запрос limit_requests() # Ограничиваем частоту запросов page.get(url) # Открываем страницу print(f"Запрос {i + 1}: Страница загружена") # Добавляем ожидание загрузки контента page.wait.ele_displayed("div.bq013-a", timeout=10) # Ждем появления товаров # Извлекаем данные о товарах products = page.eles("div.bq013-a") # Находим элементы с товарами print(f"Найдено товаров: {len(products)}") # Выводим количество найденных товаров for product in products[:3]: # Выводим информацию о первых 3 товарах try: # Проверяем, существует ли элемент с названием товара title_element = product.ele("span.tsBody500Medium") if title_element: title = title_element.text else: title = "Название товара не найдено" # Проверяем, существует ли элемент с ценой товара price_element = product.ele("span[class*='price']") if price_element: price = price_element.text else: price = "Цена товара не найдена" print(f"Название: {title}") print(f"Цена: {price}") print("-" * 40) except Exception as e: print(f"Ошибка при извлечении данных: {e}") # Закрываем браузер page.close()