Основные характеристики (вывод)

This commit is contained in:
IsmailovRovshan 2024-10-29 20:17:54 +04:00
parent 0de563e865
commit c3c6a8588e

View File

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