diff --git a/scraping/scrapingMain.py b/scraping/scrapingMain.py
index 8e96265..a6547b0 100644
--- a/scraping/scrapingMain.py
+++ b/scraping/scrapingMain.py
@@ -8,36 +8,52 @@ from webdriver_manager.chrome import ChromeDriverManager
# Инициализация драйвера
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
-# URL страницы товара
+# URL страницы каталога ноутбуков
url = 'https://www.citilink.ru/catalog/noutbuki/?ref=mainpage'
# Переход на страницу
driver.get(url)
+# Определение характеристик для поиска
+target_specs = ["Экран", "Процессор", "Графический процессор", "Оперативная память", "Диск", "Операционная система"]
+
try:
- # Ожидание появления хотя бы одного элемента
с указанным классом
+ # Ожидание загрузки блоков с ноутбуками
WebDriverWait(driver, 10).until(
- EC.presence_of_element_located((By.CSS_SELECTOR, 'li.app-catalog-12y5psc.e4qu3682'))
+ EC.presence_of_all_elements_located((By.CSS_SELECTOR, 'div.app-catalog-1o4umte.ec53oil0'))
)
- # Поиск всех элементов с указанным классом
- all_elements = driver.find_elements(By.CSS_SELECTOR, 'li.app-catalog-12y5psc.e4qu3682')
+ # Поиск блоков с ноутбуками
+ laptop_blocks = driver.find_elements(By.CSS_SELECTOR, 'div.app-catalog-1o4umte.ec53oil0')
- # Список для хранения информации об оперативной памяти
- ram_info_list = []
+ # Список для сохранения всех характеристик ноутбуков
+ all_laptops_specs = []
- # Фильтрация элементов по тексту
- for element in all_elements:
- span_element = element.find_element(By.TAG_NAME, 'span') # Ищем внутри
- if "Оперативная память" in span_element.text:
- ram_info_list.append(element.text) # Добавляем текст элемента в список
+ # Цикл по каждому блоку ноутбука
+ for laptop in laptop_blocks:
+ specs = {}
- # Вывод информации об оперативной памяти
- for ram_info in ram_info_list:
- print(f'Информация об оперативной памяти: {ram_info}')
+ # Получение всех характеристик ноутбука
+ 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}')
-except Exception as e:
- print(f'Ошибка: {e}')
finally:
# Закрытие драйвера
driver.quit()