60 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
# Инициализация драйвера
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
# URL страницы каталога ноутбуков
url = 'https://www.citilink.ru/catalog/noutbuki/?ref=mainpage'
# Переход на страницу
driver.get(url)
# Определение характеристик для поиска
target_specs = ["Экран", "Процессор", "Графический процессор", "Оперативная память", "Диск", "Операционная система"]
try:
# Ожидание загрузки блоков с ноутбуками
WebDriverWait(driver, 10).until(
EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'div.app-catalog-1o4umte.ec53oil0'))
)
# Поиск блоков с ноутбуками
laptop_blocks = driver.find_elements(By.CSS_SELECTOR, 'div.app-catalog-1o4umte.ec53oil0')
# Список для сохранения всех характеристик ноутбуков
all_laptops_specs = []
# Цикл по каждому блоку ноутбука
for laptop in laptop_blocks:
specs = {}
# Получение всех характеристик ноутбука
spec_items = laptop.find_elements(By.CSS_SELECTOR, 'li.app-catalog-12y5psc.e4qu3682')
# Поиск и сохранение целевых характеристик
for item in spec_items:
label_elem = item.find_element(By.CSS_SELECTOR, 'span')
label = label_elem.text.strip()
value = item.text.replace(label, '').strip()
# Сохраняем только целевые характеристики
if label in target_specs:
specs[label] = value
# Добавляем характеристики ноутбука в общий список
if specs:
all_laptops_specs.append(specs)
# Вывод информации обо всех ноутбуках
for i, specs in enumerate(all_laptops_specs, 1):
print(f'Ноутбук {i}: {specs}')
finally:
# Закрытие драйвера
driver.quit()