from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
driver = webdriver.Chrome() # Укажите путь к драйверу, если он не в PATH
driver.get("https://xn---72-9cd9bqh6aic.xn--p1ai/katalog/noutbuki-i-netbuki/")
# Устанавливаем ожидание
wait = WebDriverWait(driver, 15) # Увеличиваем время ожидания до 15 секунд
# Массивы для хранения данных
models = []
descriptions = []
prices = []
dates = []
# def mr_proper ():
try:
print("Ожидание загрузки страницы...")
# Ждем, пока появится хотя бы один элемент с ноутбуками
notebook_item = wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'product')))
print("Элементы найдены на странице!")
# Извлекаем данные первого ноутбука
model = notebook_item.find_element(By.CLASS_NAME, 'product__title').text
price_text = notebook_item.find_element(By.CLASS_NAME, 'product__price').text
try:
description = notebook_item.find_element(By.CLASS_NAME, 'product__description').text
except:
description = 'Нет описания'
date_added = 'Неизвестно' # Дата добавления отсутствует на сайте
# Заполняем массивы
models.append(model)
descriptions.append(description)
prices.append(price_text)
dates.append(date_added)
print("Данные успешно извлечены!")
except Exception as e:
print(f"Произошла ошибка при получении данных: {e}")
finally:
# Закрываем драйвер
driver.quit()
# Сохранение данных в Excel
if models:
data = pd.DataFrame({
'type': ['Ноутбук'],
'name': models,
'description': descriptions,
'price': prices,
'date_added': dates
})
# Сохраняем DataFrame в Excel файл
data.to_excel('first_notebook_info.xlsx', index=False)
print("Данные сохранены в файл 'first_notebook_info.xlsx'")
else:
print("Данные не найдены.")
# while True: