Почему при парсинге сайта выпадает пустой список
Была задача спарсить с сайта https://pharmvestnik.ru/lenta заголовки статей, текст и ссылки. Парсим только те статьи, заголовки или текст которых содержат хотя бы одно из слов: ["Sanofi", "FDA", "Минздрав"]. В результате выводится пустой список, не могу понять что не так
Код:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager
import time
# Укажите путь к исполняемому файлу Firefox
firefox_binary_path = r"C:\Users\vp.semenova\AppData\Local\Mozilla Firefox\firefox.exe"
# Настройка драйвера для Firefox
options = webdriver.FirefoxOptions()
options.binary_location = firefox_binary_path
driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()), options=options)
# Открываем страницу
driver.get('https://pharmvestnik.ru/lenta')
# Ждем, пока страница загрузится
time.sleep(5)
# Получаем все статьи
articles = driver.find_elements(By.CLASS_NAME, 'ui header no-marged')
# Список для хранения найденных новостей
filtered_articles = []
# Проходим по всем статьям и ищем нужные слова
for article in articles:
title_element = article.find_element(By.CLASS_NAME, 'ui header no-marged')
title = title_element.text
link = article.get_attribute('href')
# Переходим по ссылке, чтобы получить текст статьи
driver.get(link)
time.sleep(5) # Ждем, пока страница загрузится
# Получаем текст статьи
try:
text_element = driver.find_element(By.TAG_NAME, 'div') # Убедитесь, что это правильный селектор
text = text_element.text
except Exception as e:
print(f"Ошибка при получении текста статьи: {e}")
text = ""
# Проверяем наличие слов "Sanofi", "FDA" и "Минздрав" в заголовке или тексте
if any(keyword in title or keyword in text for keyword in ["Sanofi", "FDA", "Минздрав"]):
filtered_articles.append((title, link, text))
# Возвращаемся на предыдущую страницу
driver.back()
time.sleep(5) # Ждем, пока страница загрузится
# Выводим найденные статьи
for title, link, text in filtered_articles:
print("Заголовок:", title)
print("Ссылка:", link)
print("Текст:", text)
print("\n" + "="*80 + "\n")
# Закрываем драйвер
driver.quit()