Этот скрипт на Python предназначен для загрузки изображений из двух API NASA: EPIC (Earth Polychromatic Imaging Camera) и APOD (Astronomy Picture of the Day). Он использует библиотеку requests
для выполнения HTTP-запросов и dotenv
для работы с переменными окружения.
Перед запуском скрипта необходимо установить необходимые библиотеки, такие как requests
и python-dotenv
. Это можно сделать с помощью команды pip install requests python-dotenv
.
Скрипт начинает с загрузки переменных окружения из файла .env
, который должен содержать ваш API-ключ NASA. Это позволяет безопасно хранить ключ и не включать его непосредственно в код.
Функция create_directory
отвечает за создание новой директории для сохранения загруженных изображений. Если директория уже существует, она не будет создана повторно, что предотвращает возникновение ошибок.
Функция download_image
загружает изображение по указанному URL. Она реализует механизм повторных попыток, что позволяет сделать несколько попыток загрузки в случае неудачи, обеспечивая надежность процесса.
Функция fetch_images_from_epic
делает запрос к API EPIC и получает список изображений. Она формирует URL для каждого изображения на основе даты, что позволяет получить доступ к актуальным данным.
Аналогично, функция fetch_images_from_apod
делает запрос к API APOD и возвращает URL изображений, которые являются изображениями, а не видео или другими медиа.
Функция fetch_epic_images
создает директорию и загружает изображения из EPIC, используя ранее описанные функции. Она проверяет, есть ли доступные изображения, и выводит сообщение, если их нет.
Функция fetch_apod_images
выполняет ту же задачу, но загружает изображения из APOD. Она также создает директорию и проверяет наличие доступных изображений.
В конце скрипта находится блок if __name__ == "__main__":
, который запускает функции для загрузки изображений, если скрипт выполняется как основной модуль. Здесь также загружается API-ключ, что позволяет использовать его в других функциях.
Этот скрипт позволяет легко загружать изображения из NASA, используя их API. Убедитесь, что у вас есть действующий API-ключ и файл .env
с необходимыми переменными окружения.