|
| 1 | +from selenium import webdriver |
| 2 | +from selenium.webdriver.common.by import By |
| 3 | +from selenium.webdriver.chrome.service import Service |
| 4 | +from selenium.webdriver.chrome.options import Options |
| 5 | +from webdriver_manager.chrome import ChromeDriverManager |
| 6 | +import os |
| 7 | +import time |
| 8 | + |
| 9 | +# Настройка папки для загрузки файлов |
| 10 | +download_folder = os.path.abspath("downloaded_files") |
| 11 | +os.makedirs(download_folder, exist_ok=True) |
| 12 | + |
| 13 | +# Настройка опций для Chrome |
| 14 | +chrome_options = Options() |
| 15 | +chrome_options.add_argument('--headless') # Фоновый режим (можно убрать для отладки) |
| 16 | +chrome_options.add_argument('--disable-gpu') |
| 17 | +chrome_options.add_argument('--no-sandbox') |
| 18 | +chrome_options.add_argument('--disable-dev-shm-usage') |
| 19 | +chrome_options.add_experimental_option("prefs", { |
| 20 | + "download.default_directory": download_folder, # Папка для загрузки |
| 21 | + "download.prompt_for_download": False, # Отключение запросов |
| 22 | + "download.directory_upgrade": True, # Автоматическое обновление папки |
| 23 | + "safebrowsing.enabled": True # Включение безопасной загрузки |
| 24 | +}) |
| 25 | + |
| 26 | +# Инициализация драйвера |
| 27 | +driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options) |
| 28 | + |
| 29 | +# Открытие целевой страницы |
| 30 | +base_url = "https://misis.ru" |
| 31 | +page_url = f"{base_url}/students/likvidacia/#tab-1-3" |
| 32 | +driver.get(page_url) |
| 33 | +time.sleep(5) # Ожидание загрузки страницы |
| 34 | + |
| 35 | +# Поиск всех ссылок на файлы |
| 36 | +links = driver.find_elements(By.TAG_NAME, 'a') |
| 37 | +for link in links: |
| 38 | + href = link.get_attribute('href') # Получение атрибута href |
| 39 | + if href and ('.xls' in href or '.xlsx' in href): |
| 40 | + if href.startswith("/"): # Если ссылка относительная, добавляем домен |
| 41 | + href = base_url + href |
| 42 | + try: |
| 43 | + print(f"Кликаем по ссылке: {href}") |
| 44 | + link.click() # Симуляция клика |
| 45 | + time.sleep(2) # Пауза, чтобы файл успел начать загружаться |
| 46 | + except Exception as e: |
| 47 | + print(f"Ошибка при клике по ссылке {href}: {e}") |
| 48 | + |
| 49 | +# Закрытие браузера |
| 50 | +driver.quit() |
| 51 | + |
| 52 | +print(f"Все файлы сохранены в папке: {download_folder}") |
0 commit comments