Источник: Nuances of Programming
С помощью Python можно с легкостью автоматизировать ежедневные задачи. Используя комбинацию API и простых для понимания библиотек, можно настроить системы, которые выполняют скрейпинг веб-сайтов, отправляют электронные письма и управляют данными и аналитикой.
Одной из наиболее распространенных задач, которые необходимо автоматизировать в корпоративной среде, является извлечение открытых государственных данных. Обычно для этого используют такие сайты, как data.gov, и другие конечные точки, в которых содержится информация о здравоохранении, торговле, транспорте, юриспруденции и многом другом.
В этой статье мы расскажем, как написать скрипт Python, который может скачивать определенный набор правительственных данных, а затем загружать его в электронное письмо и отправлять кому угодно.
Здесь можно найти документацию, которая поможет разобраться в том, как использовать библиотеку запросов Python, а также API Gmail. Так что если вы хотите автоматизировать электронные письма с помощью Python, то это отличное место для начала.
Загрузка файла с помощью Python
В первую очередь нам потребуется загрузить файл данных с помощью HTTP-запроса.
Преимущество Python в том, что большая часть сложности написания кода, такого как HTTP-запросы, была удалена. Вместо этого можно импортировать библиотеку запросов и использовать ее для публикации и получения запросов.
В этом случае файл, который мы будем загружать, даже получит простую конечную точку по ссылке ниже. Таким образом, вам не нужно использовать такую библиотеку, как Selenium, чтобы нажимать на кнопку загрузки.
Даже при наличии кнопки загрузки, вам следует проверить, есть ли у нее URL-адрес. Как правило, если есть URL-адрес, файл действительно легко загрузить по ссылке, вместо создания веб-краулера для поиска кнопки, которую нужно нажать.
https://data.medicaid.gov/api/views/u72p-j37s/rows.json?accessType=DOWNLOAD
Этот файл содержит информацию о Медикейд (американская государственная программа медицинской помощи нуждающимся) и отдельных участниках. Она будет полезна для поставщиков медицинских услуг, которые могут использовать ее совместно со своими внутренними данными для лучшего понимания рынка.
Чтобы скачать файл, мы будем использовать функцию requests.get() для получения данных на указанный нами URL.
Для примера рассмотрим скрипт ниже:
Это легкий и быстрый способ, возвращающий CSV как часть запроса, который задан в качестве переменной. Мы будем использовать его позже, когда создадим письмо. А пока нам нужно настроить учетные данные для API Gmail.
Настройка API Gmail
Google значительно упростил настройку API. Перейдите в консоль API Google, затем выберите ENABLE APIS AND SERVICES и выполните поиск API Gmail.
Консоль API выглядит следующий образом:
После нажатия этой кнопки вы получаете поисковую систему, с помощью которой можно искать различные API. Она показана на изображении ниже.
Вы можете ввести Gmail, и он должен отобразиться только один раз.
Затем выберите API Gmail, и под ним появится кнопка ENABLE.
После нажатия этой кнопки вы можете загрузить свои учетные данные или использовать ключ API и секрет.
Наш код будет использовать JSON-загрузку, но затем вы можете преобразовать его в любой желаемый формат.
Теперь, когда все настроено, мы можем приступить к созданию функций для настройки, а затем автоматически отправлять электронные письма.
Отправка писем с помощью API Gmail
Теперь, когда мы нашли способ получить необходимые данные, нам нужно выяснить, как отправить электронное письмо.
Для этого воспользуемся библиотекой email. С ее помощью можно настроить различные части электронного письма: отправитель, получатель, тема и т. д.
Мы будем использовать класс MIMEBase в электронной почте, чтобы упростить настройку правильных точек данных и предоставить простой класс, который API Gmail будет использовать в дальнейшем для парсинга.
Использовать класс MIMEBase действительно просто, так как вы можете инициировать новый класс, а затем ссылаться на многие необходимые компоненты, такие как:
message[‘from’] = test@gmail.com
Ниже представлена вся функция, в которой установлены эти параметры:
Обратите внимание, что в конце мы используем функцию urlsafe_b64encode, которая установит сообщение в байтах. Это делается для упрощения передачи данных электронной почты в API Gmail.
Теперь пришло время отправить первое автоматическое письмо.
Отправка первого автоматического письма с помощью Python
После настройки учетных данных API Gmail мы можем отправить наше первое электронное письмо.
Мы будем использовать сервисную переменную, установленную с API Gmail и учетными данными.
Этот процесс показан ниже в функции send_message:
Теперь все, что нам нужно сделать, — передать сообщение и выполнить код.
Весь скрипт приведен ниже:
Настало время приступить к автоматизации
Мы надеемся, что этот скрипт поможет вам автоматизировать электронные письма с помощью Python.
В приведенных выше примерах скрипт был составлен вручную. Однако, если вы хотите более эффективной автоматизации, вы можете использовать такую среду, как Airflow. Мы не рекомендуем пытаться создать собственный фреймворк автоматизации, особенно когда есть так много отличных вариантов.
Вот и все, удачной автоматизации!
Читайте также:
Перевод статьи SeattleDataGuy: How to Automate Your Emails With Python