Что можно автоматизировать на python

Автоматизация на Python: три проекта

У каждого есть рабочие задачи, не слишком важные и не сильно-то связанные с профессией, но такие, от которых не отвертишься. Одноразовое выполнение этих задач не составляет большого труда. Однако когда они становятся постоянными и начинают отнимать много времени, их нужно автоматизировать.

Автоматизация этих задач позволит перестать тратить время на рутину. Вы сможете сосредоточиться на действительно важных вещах, что значительно повысит эффективность вашей работы. Кроме того, вы примените на практике все свои знания о Python и даже узнаете что-то новое.

Давайте рассмотрим три проекта Python, которые помогли нам автоматизировать некоторые повседневные задачи на работе и, надеемся, помогут и вам!

1. Автоматизация отчетности в Excel

Подумайте обо всем, что вам нужно сделать для создания отчетов в Excel. Вы используете формулы Excel, создаете сводную таблицу, диаграммы и форматируете рабочие листы.

Сделать это один раз легко, но когда вам приходится делать это с определенной периодичностью, задача усложняется. К счастью, Python может помочь нам автоматизировать такие задачи. В следующий раз для создания отчета в Excel потребуется лишь пара щелчков мышью.

Подходы к решению

Для автоматизации Excel-отчетов можно использовать openpyxl и Pandas. Подробную инструкцию можно почитать в статье «Автоматизация отчетов в Excel с помощью Python». Обе библиотеки прекрасны и крайне полезны. Но у этого подхода есть недостаток: новичкам может потребоваться некоторое время, чтобы изучить openpyxl. А между тем, эта библиотека пригодится только для работы с Excel.

К счастью, есть более простой подход к автоматизации отчетов в Excel. Нам нужно просто установить библиотеку Python mitosheet (также известную как Mito). Эта библиотека позволяет нам группировать данные и вычислять сводную статистику с помощью интуитивно понятного интерфейса, подобного Excel. Самым приятным будет то, что Mito генерирует код для каждого редактирования. Поэтому мы сможем увидеть код Python, соответствующий каждому редактированию.

В приведенном ниже примере вы можете увидеть, как мы использовали интерфейс mitosheet для создания сводной таблицы. После создания сводной таблицы код создается автоматически. Удобно, не правда ли?

Чтобы автоматизировать создание сводных таблиц и другие задачи в Excel, необходимо установить библиотеку mitosheet. Для ее установки сначала откройте терминал и загрузите установщик Mito с помощью следующей команды:

Затем запустите установщик (выполнение этой команды может занять некоторое время):

Вот и все! Теперь вы можете значительно упростить себе жизнь с помощью mitosheet. Как создать свою первую сводную таблицу в Mito, можно узнать здесь.

2. Автоматизация визуализации данных

Большинство проектов по анализу данных заканчиваются презентацией, содержащей множество графиков. Раньше мы обновляли отчеты в Excel, а затем вручную создавали визуализации, такие как гистограммы, круговые и коробчатые диаграммы и т.д.

Однако это отнимает очень много времени, поэтому очень хотелось бы найти альтернативу. К счастью, в Python такая альтернатива есть. Существует пара библиотек, которые могут помочь нам автоматизировать построение визуализаций. Нам нужно будет только прочитать обновленные отчеты Excel с помощью Python, а все визуализации создадутся при запуске скрипта.

Решение

Чтобы автоматизировать визуализацию данных, сначала нам нужно написать код, создающий нужный нам график (желательно в файле Jupiter Notebook). Затем запишите, как должны выглядеть входные данные (файл Excel). Убедитесь, что имена столбцов, форма данных, тип данных и другие важные характеристики останутся такими же при следующем обновлении.

Python предлагает различные варианты для создания как стандартных, так и интерактивных визуализаций. Для этого можно использовать такие библиотеки, как Matplotlib и Seaborn. Кроме того, для создания интерактивных визуализаций вы можете использовать Pandas и Plotly.

Но изучение этих библиотек может занять у вас много часов. Здесь тоже может помочь Mito! Вы можете использовать библиотеку mitosheet для визуализации данных в пару щелчков мыши. Кроме того, автоматически будет генерироваться код на Python. Этот код можно использовать для автоматизации создания визуализации данных для будущих задач.

Давайте посмотрим, как это работает.

Здесь мы используем библиотеку mitosheet для создания гистограммы набора данных Netflix. Нам нужно только выбрать столбец, нажать кнопку графика и — вуаля! График создан, а код сгенерирован автоматически.

3. Автоматизация работы с сайтами

Одна из скучнейших задач, которую приходилось выполнять каждому младшему аналитику данных (да и не только им), заключается в ежедневной загрузке файлов на сайт клиента. Шаги были довольно простыми: перейди на сайт X, нажми эту кнопку, выбери вариант из раскрывающегося списка и нажми кнопку «Загрузить».

Это занимает около двух минут. Только вот эти шаги приходится повторять сотни раз в течение недели. Поэтому хорошо было бы автоматизировать эту задачу. Это можно сделать, например, с помощью Selenium. Это инструмент для управления браузерами, например Chrome, при помощи Python.

Решение

Чтобы автоматизировать любую работу с сайтом с помощью Python, сначала подумайте обо всех шагах, которые вы обычно выполняете на сайте. Ваша задача может включать нажатие на кнопки, выбор элементов в раскрывающихся списках, введение текста, прокрутку вверх или вниз, вход на страницу и выход и так далее и тому подобное.

После того, как все задачи перечислены, реплицируйте все шаги в Python с помощью Selenium. Вы можете поискать руководства по работе с данной библиотекой в YouTube. Кроме того, существуют разные туториалы по Selenium для начинающих. Вашей главной задачей будет создание бота в Selenium, который будет выполнять практически любую задачу на сайте, как если бы вы управляли им самостоятельно.

Заключение

Автоматизация избавляет нас от многих рутинных задач. В этой статье мы рассмотрели три проекта, связанных с автоматизацией:

Мы познакомились с таким инструментом, как Mito. Его основное достоинство заключается в том, что он самостоятельно генерирует код, который вы можете использовать в дальнейшем для реализации похожих задач.

Надеемся, эта статья была полезной для вас. Успехов в написании кода!

Источник

Автоматизация работы с Python

Введение

Работу по вводу данных можно разделить на следующие категории:

Каким образом можно ускорить этот процесс? В этом нам помогут модули автоматизации Python!

Предварительная подготовка

Документацию и руководство пользователя по модулю PyAutoGUI в Python можно прочитать ЗДЕСЬ. Загрузка модуля выполняется через командную строку:

Чтобы использовать модуль внутри сценария, его нужно импортировать:

«as pag» используется для ввода меньшего количества символов в следующем коде: pag.click() намного короче, чем pyautogui.click().

Управление клавиатурой

Примечание: инструкции в данном разделе основаны на документации PyAutoGUI и содержат несколько примеров из нее.

typewrite() — самая главная команда для управления клавиатурой. Например:

Этот фрагмент кода работает, как при написании «Hello world!» вручную, однако выполняется без нажатия клавиш. Очень удобно!

Читайте также:  Чем закрыть трубы отопления в комнате до потолка

Чтобы добавить задержку между нажатиями клавиш, можно использовать следующую команду:

Она печатает каждый символ с интервалом в четверть секунды.

Примечание: с помощью этой функции можно печатать только сообщения. Внутри функции typewrite() невозможно нажать enter или использовать shift.

Список клавиш клавиатуры

Ниже приведен список клавиш клавиатуры, которые можно передать функциям press(), keyUp(), keyDown() или hotkey():

Функции keyDown() и keyUp() имитируют нажатие и отпускание клавиши. Например:

Этот фрагмент кода нажимает и отпускает клавишу enter. Будьте осторожны и никогда не оставляйте клавишу нажатой 🙂

Функция press() объединяет две предыдущих. Клавиша, передаваемая функции, нажата и отпущена:

Два предыдущих фрагмента кода выдают одинаковый результат!

Чтобы нажать несколько клавиш, аргументы передаются в виде списка:

Последняя функция клавиатуры — это hotkey(), упрощающая использование сочетаний клавиш. Просто передайте ей несколько клавиш, которые будут нажаты по порядку, а затем отпущены в обратном порядке. Например:

Эквивалентно следующему коду:

Управление мышью

Места расположения мыши на экране обозначены координатами X и Y: X начинается с 0 с левой стороны и увеличивается вправо, а Y начинается с 0 в верхней части экрана и увеличивается с понижением.

Чтобы узнать размер экрана, используйте функцию size:

Она возвращает кортеж, например (1920×1080), обозначающий разрешение экрана.

Список других функций мыши:

Более подробную информацию можно найти ЗДЕСЬ или ЗДЕСЬ.

Применение на практике

Предположим, что вы руководите большой компанией и хотите, чтобы весь 1 000 000 сотрудников были зарегистрированы на популярном веб-сайте. Первый способ — выполнить это вручную. Если для регистрации одного пользователя требуется 30 секунд, а работа будет выполняться 24 часа в сутки, то этот процесс займет более 347 дней. Достаточно долго. Вместо этого можно потратить несколько часов на написание программы и предоставить выполнение работы компьютерам. Приступим!

Допустим, вы уже определили список адресов электронной почты всех сотрудников:

Приступим к созданию кода. Он начинается с импортов и открытия платформы crazycoolwebsite.

Затем нужно добавить код для навигации по процессу регистрации. Предположим, что он выглядит следующим образом:

В коде это выглядит так:

Вот и все! Если указаны точные координаты нажатия (xcoord1, ycoord1, xcoord2 и ycoord2), то код сделает свое дело. Не советуем использовать этот метод как способ рассылки спама.

Примечание: при автоматизации следует учитывать временной фактор. Вы не можете предсказать, сколько времени займет открытие файла или загрузка веб-страницы. Найдите безопасные интервалы для «приостановки кода» или реализации функций, которые определяют, загружена ли страница (PyAutoGUI проверяет, является ли определенное количество пикселей белым (страница все еще загружается) или обозначено другим цветом (страница загружена!).

Немного о работе по вводу данных в целом: большинство заданий не так просты, как в описанном выше примере, однако процесс извлечения данных из A и вставки их в B остается практически неизменным. Различаются только структуры данных и ресурсы.

Добавим немного воображения

Этот модуль можно использовать и во многих других случаях. Например, в некоторых компьютерных играх крайне важна точность. Сможете ли вы перетащить мышь или нажать клавишу пробела более точно, чем написанный сценарий?

Игра Scary maze

Цель игры Scary maze состоит в том, чтобы перемещать курсор по синему пути. При соприкосновении с черным пикселем вы возвращаетесь к началу.

Заключительная часть с узким коридором, конечно, самая сложная. А что, если создать сценарий python для завершения лабиринта?

Игра Google Dino

Другой пример: помните этого парня?

Он, вероятно,самый нелюбимый друг всех пользователей Chrome, поскольку он приходит в гости лишь при отсутствии интернета. Попробовать игру можно ЗДЕСЬ. Цель состоит в обходе препятствий, приближающихся к Dino.

Сделайте несколько скриншотов игрового экрана и проанализируйте следующее:

На этом изображении препятствия обозначены красными прямоугольниками. Dino должен прыгнуть, когда красная коробка коснется зеленой линии.

Отсрочка отправки текста

Сталкивались ли вы с такой ситуацией, когда, закончив писать письмо/сообщение в 3 часа ночи, вы не знаете, отправлять ли его сейчас или подождать до утра, чтобы избежать таких вопросов, как «почему вы не спите ночью, как нормальные люди?» Есть простое решение:

Этот сценарий откладывает отправку сообщения на 6 часов (время задержки можно изменить).

Источник

✨ Python и API: превосходное комбо для автоматизации работы с публичными данными

Leo Matyushkin

Многие ежедневно используемые приложения и системы имеют свой API. От очень простых и обыденных вещей, таких как проверка погоды по утрам, до более захватывающих, вроде лент Instagram, TikTok или Twitter. Во всех современных приложениях API-интерфейсы играют центральную роль.

В этом туториале мы детально рассмотрим:

К концу прохождения туториала вы сможете использовать Python для большинства общедоступных API. Если вы разработчик, знание того, как использовать API-интерфейсы с Python, поможет в интеграции вашей работы со сторонними приложениями.

Знакомство с API

Аббревиатура API соответствует английскому application programming interface — программный интерфейс приложения. По сути, API действует как коммуникационный уровень или интерфейс, который позволяет различным системам взаимодействовать друг с другом без необходимости точно понимать, что делает каждая из систем.

API-интерфейсы имеют разные формы. Это может быть API операционной системы, используемый для включения камеры и микрофона для присоединения к звонку Zoom. Или это могут быть веб-API, используемые для действий, ориентированных на веб, таких как лайки фотографий в Instagram или получение последних твитов.

Независимо от типа, все API-интерфейсы работают приблизительно одинаково. Обычно программа-клиент запрашивает информацию или данные, а API возвращает ответ в соответствии с тем, что мы запросили. Каждый раз, когда мы открываем Twitter или прокручиваем ленту Instagram, приложение делает запрос к API и просто отображает ответ с учетом дизайна программы.

В этом руководстве мы подробно остановимся на высокоуровневых веб-API, которые обмениваются информацией между сетями.

SOAP vs REST vs GraphQL

В конце 1990-х и начале 2000-х годов две разные модели дизайна API стали нормой для публичного доступа к данным:

Сегодня распространение также получает GraphQL — созданный Facebook гибкий язык API-запросов. Хотя GraphQL находится на подъеме и внедряется крупными компаниями, включая GitHub и Shopify, большинство общедоступных API-интерфейсов это REST API. Поэтому в рамках руководства мы ограничимся именно REST-подходом и тем, как взаимодействовать с такими API с помощью Python.

requests и API

Установите библиотеку любым удобным вам способом, например, с помощью pip:

Чтобы следовать примерам кода из руководства, убедитесь, что вы используете Python не ниже 3.8 и версию библиотеки requests не ниже 2.22.0.

Обращение к API с помощью Python

Достаточно разговоров — пора сделать первый вызов API! Мы вызовем популярный API для генерации случайных пользовательских данных. Единственное, что нужно знать для начала работы с API — по какому URL-адресу его вызывать. В этом примере это https://randomuser.me/api/, и вот самый простой вызов API, с которого мы и начнем:

Читайте также:  Что лучше пенополистирол или пенополиуретан для фасада

Конечные точки и ресурсы

Как мы видели выше, первое, что нужно знать для использования API, — это базовый URL-адрес API. Вот так выглядят базовые URL-адреса нескольких известных провайдеров API:

Попытавшись открыть любую из приведенных ссылок, вы заметите, что большинство из них возвращает ошибку или запрашивает учетные данные. Многие API-интерфейсы требуют аутентификации для определения прав доступа.

Сделаем запрос к интерфейсу TheDogAPI, аналогичный приведенному выше:

При вызове базового URL-адреса мы получаем сообщение, в котором говорится, что мы обратились к Dog API. Базовый URL здесь используется для получения информации об API, а не реальных данных.

Конечная точка (endpoint) — это часть URL-адреса, указывающая, какой ресурс мы хотим получить. Хорошо документированные API-интерфейсы содержат справочник по API, описывающий конечные точки и ресурсы API, а также способы их использования.

Есть такой справочник и у TheDogAPI. Попробуем обратиться к конечной точке, предоставляющей характеристики пород:

Вуаля, мы получили список пород!

Если вы больше любите кошек, аналогичный API есть и для мурлыкающих питомцев:

Request и Response

Все взаимодействия между клиентом (в нашем случае консолью Python) и API разделены на запрос ( request ) и ответ ( response ):

Снова обратившись к TheDogAPI, мы можем немного подробнее рассмотреть, что именно находится внутри объектов request и response :

В приведенном примере показаны некоторые из наиболее важных атрибутов, доступных для объектов запроса и ответа.

Коды состояний HTTP

Код состояния — одна из наиболее важных частей ответа API, которая сообщает, закончился ли запрос успешно, были ли найдены данные, нужна ли информация об учетной записи и т. д.

Со временем вы без посторонней помощи научитесь распознавать различные коды состояний. Но пока приведем список наиболее распространенных:

Код состояния Описание
200 OK Запрос успешно выполнен.
201 Created Запрос принят и создан ресурс.
400 Bad Request Запрос неверен или отсутствует некоторая информация.
401 Unauthorized Запрос требует дополнительных прав.
404 Not Found Запрошенный ресурс не существует.
405 Method Not Allowed Конечная точка не поддерживает этот метод HTTP.
500 Internal Server Error Ошибка на стороне сервера.

Теперь отправим запрос, содержащий в пути намеренно сделанную ошибку:

Заголовки HTTP

HTTP-заголовки (headers) используются для определения нескольких параметров, управляющих запросами и ответами:

HTTP Header Описание
Accept Какой тип контента может принять клиент
Content-Type Какой тип контента в ответе сервера
User-Agent Какое программное обеспечение клиент использует для связи с сервером
Server Какое программное обеспечение сервер использует для связи с клиентом
Authentication Кто вызывает API и с какими учетными данными

Чтобы проверить заголовки ответа, можно использовать response.headers :

В этом случае мы не определяем какие-либо конкретные заголовки при отправке запроса, поэтому возвращаются заголовки по умолчанию.

Пользовательские заголовки

X-Request-Id находится среди других заголовков, которые по умолчанию идут с любым запросом API.

Content-Type

В наши дни большинство API-интерфейсов используют в качестве типа контента по умолчанию JSON.

Вернувшись к одному из предыдущих примеров использования TheDogAPI, мы заметим, что заголовок Content-Type определен как application/json :

Помимо типа содержимого (в данном случае application/json ), заголовок может возвращать кодировку контента.

Вы можете столкнуться и c API, возвращающими XML или мультимедиа, например, изображения или видео.

Заголовок Content-Type позволяет узнать, как обрабатывать ответ и что делать с содержимым ответа.

Содержание ответа

Как видите, после выполнения response.json() мы получаем словарь, который можно использовать так же, как любой другой словарь в Python.

Методы HTTP

При вызове API существует несколько различных методов, которые мы можем использовать, чтобы указать, какое действие хотим выполнить. Например, если мы хотим получить некоторые данные, мы используем метод GET, а если нужно создать некоторые данные — метод POST.

Вот список наиболее распространенных методов и их типичных вариантов использования:

HTTP-метод Описание Метод requests
POST Создает новый ресурс. requests.post()
GET Считывает имеющийся ресурс. requests.get()
PUT Обновляет существующий ресурс. requests.put()
DELETE Удаляет ресурс. requests.delete()

Эти четыре метода также называют CRUD-операциями, поскольку они позволяют создавать (create), читать (read), обновлять (update) и удалять (delete) ресурсы.

Большинство этих запросов вернут код состояния 405 (Method Not Allowed). Не все конечные точки поддерживают методы POST, PUT или DELETE. Действительно, большинство общедоступных API разрешают только запросы GET и не позволяют создавать или изменять существующие данные без авторизации.

Параметры запроса

Иногда при вызове API можно получить тонну данных, которые в массе своей не нужны. При вызове конечной точки TheDogAPI/breeds мы получаем всю информацию о каждой породе, но вполне вероятно, что нам достаточно лишь небольшой части данных для одного подвида собак. Тут пригождаются параметры запроса!

Наверняка вы уже сталкивались с параметрами запроса при просмотре веб-страниц в Интернете. При просмотре видео на YouTube у вас есть URL-адрес вида https://www.youtube.com/watch?v=aL5GK2LVMWI. Параметр v= в URL-адресе и есть параметр запроса. Обычно он идет после базового URL-адреса и конечной точки.

Тот же URL-адрес YouTube, указанный выше, с несколькими параметрами запроса будет выглядеть следующим образом: https://www.youtube.com/watch?v=aL5GK2LVMWI&t=75.

В мире API параметры запроса используются в качестве фильтров. Они отправляются вместе с запросом API и позволяют сузить поле для поиска.

Возвратимся к API генератора случайных пользователей:

Предположим, что мы хотим привлечь женскую аудиторию из Германии, и в качестве примеров необходимо сгенерировать соответствующих пользователей. Согласно документации, для нашей задачи можно использовать параметры запроса gender= и nat= :

Используя параметры запроса, мы можем получать более конкретные данные от API, адаптируя взаимодействие с API к нашим потребностям.

Чтобы избежать повторного создания URL-адреса, мы можем передавать параметры запроса в виде атрибута-словаря params :

Изучение продвинутых концепций API

Теперь, когда у нас есть представление об основах использования API с Python, есть несколько более сложных тем, которые стоит хотя бы кратко затронуть: аутентификация, пагинация и ограничения по времени.

Аутенфикация

Хотя многие API бесплатны и полностью общедоступны, аутентификация обычно существенно расширяет права доступа. Существует множество API, требующих аутентификации, например:

Подходы к аутентификации варьируются от очень простых, например, использования ключей API или базовой аутентификации, до гораздо более сложных и безопасных методов, таких как OAuth.

Ключи API

Самый распространенный подход к аутентификации — это ключ API (API key). Эти ключи используются для идентификации вас как пользователя или клиента API, а также для отслеживания использования вами интерфейса. Ключи API обычно отправляются как заголовок запроса или как параметр запроса.

Читайте также:  что значит микроклимат в семье

Всё идет нормально. Нам удалось сделать аутентифицированный запрос к API NASA и получить ответ 200 OK.

Взглянем поближе на объект Response и попробуем извлечь из него несколько изображений:

OAuth: начало работы

Другой распространенный стандарт аутентификации API — это OAuth. Это очень обширная тема, поэтому мы коснемся только самых основ.

Когда приложение или платформа позволяет зарегистрироваться или войти с помощью другого ресурса, например, Google или Facebook, поток аутенфикации обычно использует OAuth.

Вот пошаговое описание того, что происходит, когда мы нажимаем в приложении Spotify кнопку «Продолжить с Facebook»:

При прохождении четвертого шага Facebook предоставит Spotify специальные учетные данные — токен доступа ( access_token ), который можно многократно использовать для получения информации. Этот токен входа в Facebook действителен в течение шестидесяти дней, но у других приложений могут быть другие сроки действия.

С технической точки зрения вот что нам нужно знать при использовании API с использованием OAuth:

Существуют различные вариации этого процесса, но большинство потоков OAuth содержат шаги, аналогичные описанным. Давайте попробуем OAuth на примере GitHub API.

OAuth: практический пример

Как мы видели выше, первое, с чего стоит начать — создать приложение. В документации GitHub есть отличное пошаговое объяснение, как это сделать. Чтобы не разворачивать отдельный сервер, в качестве адреса для перенаправления можно использовать адрес https://httpbin.org/anything. Эта веб-страница просто выводит все, что получает на входе.

Создадим приложение, скопируем и вставим Client_ID и Client_Secret вместе с указанным URL для переадресации в файл Python, который назовем github.py :

У нас есть все необходимые переменные, теперь нужно создать ссылку для перенаправления пользователя на его учетную запись GitHub, как описано в документации GitHub:

Следующим шагом в процессе авторизации является обмен полученного кода на токен доступа. Опять же, следуя инструкциям в документации GitHub, мы можем создать для этого метод:

Здесь мы делаем POST-запрос для обмена кода на токен доступа. В запросе мы должны отправить CLIENT_SECRET и код, чтобы GitHub проверил, что код сгенерирован нашим приложением. После этого GitHub API генерирует и возвращает токен доступа.

Мы можем добавить в свой файл следующий код и попробовать его запустить:

Мы должны получить действующий токен доступа, который можно использовать для вызовов API GitHub от имени аутентифицированного пользователя.

Попробуем добавить следующий код, чтобы получить свой профиль пользователя с помощью User API и распечатать свое имя, имя пользователя и количество приватных репозиториев:

Осталось только собрать все вместе и попробовать:

В результате запуска скрипта мы получим примерно такой результат:

Большинство API-интерфейсов, использующих OAuth, ведут себя одинаково, поэтому достаточно один раз разобраться во всех процессах.

Пагинация

За пересылку большого массива данных между клиентами и сервером приходится платить пропускной способностью. Для снижения нагрузки на сервер API-интерфейсы обычно используют пагинацию — разбиение выдаваемой информации на страницы.

Например, всякий раз, когда мы переходим на страницу вопросов в Stack Overflow, внизу страницы есть ряд чисел, соответствующих страницам пагинации:

В API пагинация обычно обрабатывается с помощью двух параметров запроса:

Конкретные имена параметров запроса могут сильно различаться в зависимости от выбора разработчиков API. Некоторые провайдеры API могут также использовать HTTP-заголовки или JSON для возврата текущих фильтров разбивки на страницы.

Снова воспользуемся GitHub API. Параметр per_page= определяет количество возвращаемых элементов, а page= позволяет разбивать результат на отдельные страницы. Пример использования параметров:

Ограничение скорости

Учитывая, что рассматриваемые API-интерфейсы являются общедоступными и могут использоваться кем угодно, ими пытаются злоупотреблять люди с плохими намерениями. Чтобы предотвратить такие атаки, используется метод, называемый ограничением скорости ( rate limit ). API ограничивает количество запросов, которые пользователи могут сделать за определенный период. В случае превышения лимита API-интерфейсы временно блокируют IP-адрес или API-ключ.

Некоторые API, такие как GitHub, даже включают в заголовки дополнительную информацию о текущем ограничении скорости и количестве оставшихся запросов. Это очень помогает избежать превышения установленного лимита.

Использование API с помощью Python: практические примеры

Теперь, когда мы поэкспериментировали с несколькими API, можно объединить полученные знания с помощью еще нескольких практических примеров.

Запрос наиболее популярных сейчас гифок

Как насчет создания небольшого скрипта, который извлекает три самых популярных сейчас GIF-файла с веб-сайта GIPHY? Начните с получения API-ключа:

Ключ API используем в GIPHY API:

Запуск этого кода выведет структурированный список со ссылками на гифки:

Получение подтвержденных случаев COVID-19 в каждой стране

API сайта, отслеживающего случаи заболевания COVID-19, не требует аутентификации. В следующем примере мы получим общее количество подтвержденных случаев до предыдущего дня:

В этом примере мы получаем общее количество подтвержденных случаев для всей страны. Однако вы также можете просмотреть документацию и получить данные для конкретного города.

Поиск в Google Книгах

Воспользуемся API Google Книг для поиска информации об интересующей нас книге. Вот простой фрагмент кода для поиска названия книги Моби Дик во всем каталоге с выдачей трех первых записей:

Вы можете использовать свои знания OAuth и создать приложение, хранящее записи о книгах, которые читаете или хотите прочитать.

Заключение

Есть множество других вещей, которые вы ещё узнаете об API: другие заголовки, типы контента, методы аутентификации и так далее. Однако концепции и методы, которые мы рассмотрели в этом руководстве, позволят достаточно быстро разобраться и провзаимодействовать с помощью Python с любыми API.

Напоследок приведем список агрегаторов ссылок на публичные API, которые вы можете использовать в собственных проектах:

На Python создают прикладные приложения, пишут тесты и бэкенд веб-приложений, автоматизируют задачи в системном администрировании, его используют в нейронных сетях и анализе больших данных. Язык можно изучить самостоятельно, но на это придется потратить немало времени. Если вы хотите быстро понять основы программирования на Python, обратите внимание на онлайн-курс «Библиотеки программиста». За 30 уроков (15 теоретических и 15 практических занятий) под руководством практикующих экспертов вы не только изучите основы синтаксиса, но и освоите две интегрированные среды разработки (PyCharm и Jupyter Notebook), работу со словарями, парсинг веб-страниц, создание ботов для Telegram и Instagram, тестирование кода и даже анализ данных. Чтобы процесс обучения стал более интересным и комфортным, студенты получат от нас обратную связь. Кураторы и преподаватели курса ответят на все вопросы по теме лекций и практических занятий.

Источник

Библиотека с советами