pytube - это библиотека, которая умеет скачивать любые видео с пока ещё не забаненного YouTube по предоставленной ссылке, а также получать все связанные с этим видео данные 🎥
Помимо скачивания видео-файла в любом из удобных форматов, вы ещё сможете получить такие данные, как: длина видео, автор, количество просмотров, ссылка на превью и т.д.
Более того, pytube позволяет вешать некоторые колбэки и по-разному настраивать потоки скачивания 👌🏼
В общем, небольшой пример работы с этой библиотекой показан на скриншоте выше 🔝
Исходник - https://pastebin.com/eAWu8h6G
Помимо скачивания видео-файла в любом из удобных форматов, вы ещё сможете получить такие данные, как: длина видео, автор, количество просмотров, ссылка на превью и т.д.
Более того, pytube позволяет вешать некоторые колбэки и по-разному настраивать потоки скачивания 👌🏼
В общем, небольшой пример работы с этой библиотекой показан на скриншоте выше 🔝
Исходник - https://pastebin.com/eAWu8h6G
👍18🔥6❤1
Учим приложения общаться
Как-то приложения должны передавать данные друг-другу. И делается это через API, которое можно быстро написать с использованием фреймворка hug.
Установка:
Всё максимально просто, копируем пример с официального сайта и запускаем с помощью
Как-то приложения должны передавать данные друг-другу. И делается это через API, которое можно быстро написать с использованием фреймворка hug.
Установка:
pip3 install hug
С его помощью можно быстро написать API для браузера (HTTP) или терминала (CLI). Также он считается самым фреймворком для создания оболочки взаимодействия пользователя с приложением.Всё максимально просто, копируем пример с официального сайта и запускаем с помощью
hug -f file.py. Потом открываем браузер и переходим по http://127.0.0.1:8000/echo.🔥3👍1
Делаем скриншоты
Кросс-платформенный модуль pyscreenshot позволяет делать скриншоты как всего экрана, так и его части. Для его работы должна быть корректно установлена библиотека pillow.
Для создания скриншота используется метод grab, для его открытия – show, для сохранения – save. Также в grab можно передать аргумент bbox для захвата только определённой части экрана.
Подобный модуль может быть полезен, например, для логирования скриптов, использующих Selenium, который может открывать браузер и производить какие-либо операции в нём.
Кросс-платформенный модуль pyscreenshot позволяет делать скриншоты как всего экрана, так и его части. Для его работы должна быть корректно установлена библиотека pillow.
Для создания скриншота используется метод grab, для его открытия – show, для сохранения – save. Также в grab можно передать аргумент bbox для захвата только определённой части экрана.
Подобный модуль может быть полезен, например, для логирования скриптов, использующих Selenium, который может открывать браузер и производить какие-либо операции в нём.
🔥4👍3❤1
Delorean
Удобная библиотека для работы с датами и временем. Cтоит отметить отличную документацию и огромное количество отсылок к «Назад в будущее».
В примере выводим дату и время на текущий момент на другом континенте. Документация: https://delorean.readthedocs.io/en/latest/
Удобная библиотека для работы с датами и временем. Cтоит отметить отличную документацию и огромное количество отсылок к «Назад в будущее».
В примере выводим дату и время на текущий момент на другом континенте. Документация: https://delorean.readthedocs.io/en/latest/
👍11🤔2
📌 Ведём логи
Логи — записи работы приложения, начиная от простой информации и заканчивая критическими ошибками. Они упрощают поиск багов и помогают их быстро исправлять. Для работы с этим чудом используется logging.
Настройки (название файла, уровень записи) задаются с помощью
Обычно этой информации хватает, чтобы пользоваться logging, но если вы считаете по другому, то можете перейти к уроку или к API Reference.
Логи — записи работы приложения, начиная от простой информации и заканчивая критическими ошибками. Они упрощают поиск багов и помогают их быстро исправлять. Для работы с этим чудом используется logging.
Настройки (название файла, уровень записи) задаются с помощью
basicConfig(), после вы можете записывать туда данные с помощью debug(), info(), warning(), error().Обычно этой информации хватает, чтобы пользоваться logging, но если вы считаете по другому, то можете перейти к уроку или к API Reference.
👍4
Работа с атрибутами объектов
Рассмотрим специальные функции для работы с атрибутами. getattr позволяет получить атрибут, setattr — установить его, delattr — удалить. hasattr проверяет, существует ли атрибут с указанным названием у объекта или нет.
Каждой функции первыми двумя аргументами передаются сам объект и название атрибута. В setattr также нужно передать новое значение для атрибута.
На практике эти четыре функции используются не слишком часто, но знать о них полезно.
Рассмотрим специальные функции для работы с атрибутами. getattr позволяет получить атрибут, setattr — установить его, delattr — удалить. hasattr проверяет, существует ли атрибут с указанным названием у объекта или нет.
Каждой функции первыми двумя аргументами передаются сам объект и название атрибута. В setattr также нужно передать новое значение для атрибута.
На практике эти четыре функции используются не слишком часто, но знать о них полезно.
❤5👍3
Операции со списками в Python
К спискам можно применить встроенные функции Python, такие как len(), min() и max(), чтобы получить длину списка, наименьший и наибольший элементы соответственно.
Поскольку наш shopping_list содержит только строки, min() возвращает строку, которая шла бы первой, если бы список был упорядочен в алфавитном порядке. max() возвращает строку, которая шла бы последней.
К спискам можно применить встроенные функции Python, такие как len(), min() и max(), чтобы получить длину списка, наименьший и наибольший элементы соответственно.
Поскольку наш shopping_list содержит только строки, min() возвращает строку, которая шла бы первой, если бы список был упорядочен в алфавитном порядке. max() возвращает строку, которая шла бы последней.
👍5
Метод items()
Метод items() используется для возврата списка кортежей с парами всех ключей и значений словаря.
Синтаксис:dictionary.items()
Данный метод не принимает никаких аргументов.
Приведем пример использования данной функции.
Объявлен словарь с именем products. Ключи содержат названия продуктов, а значения — их цены. Используем для нашего словаря метод items() и сохраним в другой переменной с именем itemlist, а затем выведем на экран.
Метод items() используется для возврата списка кортежей с парами всех ключей и значений словаря.
Синтаксис:dictionary.items()
Данный метод не принимает никаких аргументов.
Приведем пример использования данной функции.
Объявлен словарь с именем products. Ключи содержат названия продуктов, а значения — их цены. Используем для нашего словаря метод items() и сохраним в другой переменной с именем itemlist, а затем выведем на экран.
👍5🤔1
art
Всё, что вам может понадобится для вывода красивых надписей или артов в терминал. Ставится с помощью команды
Всё, что вам может понадобится для вывода красивых надписей или артов в терминал. Ставится с помощью команды
pip install art. Полный список возможностей есть в документации.👍11
Преобразование PNG в PDF
Для начала установим библиотеку img2pdf - pip install img2pdf.
img2pdf— это пакет Python с открытым исходным кодом для преобразования изображений в формат pdf.
Подробнее ознакомиться с библиотекой img2pdf можно здесь.
Для начала установим библиотеку img2pdf - pip install img2pdf.
img2pdf— это пакет Python с открытым исходным кодом для преобразования изображений в формат pdf.
Подробнее ознакомиться с библиотекой img2pdf можно здесь.
🔥6👍4
Работа с PDF
С помощью пакета pdftotext мы можем работать с PDF-файлами в Python: получать кол-во страниц, итерироваться по ним, выводить конкретные страницы и тексты. Вся эта функциональность описана на картинке.
Исходный код пакета написан на C++, поэтому могут возникнуть проблемы при установке. Документация: https://pypi.org/project/pdftotext/
С помощью пакета pdftotext мы можем работать с PDF-файлами в Python: получать кол-во страниц, итерироваться по ним, выводить конкретные страницы и тексты. Вся эта функциональность описана на картинке.
Исходный код пакета написан на C++, поэтому могут возникнуть проблемы при установке. Документация: https://pypi.org/project/pdftotext/
👍7
Emoji
Пакет Emoji пакет очень помогает при анализе данных из соцсетей, позволяя встраивать в текст и выделять из него эмодзи. Почитать документацию и ознакомиться с другими примерами можно на странице пакета emoji.
Пакет Emoji пакет очень помогает при анализе данных из соцсетей, позволяя встраивать в текст и выделять из него эмодзи. Почитать документацию и ознакомиться с другими примерами можно на странице пакета emoji.
👍7
Всплывающее окно
Программа ставится на паузу, пока не нажать ОК в всплывающем окне (или закрыть его). Более подробно о возможностях кастомизации можно почитать в документации пакета: https://pyautogui.readthedocs.io/en/latest/
pyautogui.alert позволяет вызвать всплывающее окно. В примере показано самое простое использование метода.Программа ставится на паузу, пока не нажать ОК в всплывающем окне (или закрыть его). Более подробно о возможностях кастомизации можно почитать в документации пакета: https://pyautogui.readthedocs.io/en/latest/
👍5🔥3
Целые числа (int)
Давайте определим переменную x, имеющую значение 10. Встроенный метод id() используется для определения местоположения x в памяти, а type() используется для определения типа переменной. Когда мы пытаемся изменить значение x, оно успешно изменяется.
Стоит заметить, что адрес памяти тоже изменяется. Так происходит потому, что фактически мы не изменили значение x, а создали другой объект с тем же именем x и присвоили ему другое значение. Мы связали имя x с новым значением. Теперь, когда вы вызываете x, он будет выводить новое значение и ссылаться на новое местоположение.
Давайте определим переменную x, имеющую значение 10. Встроенный метод id() используется для определения местоположения x в памяти, а type() используется для определения типа переменной. Когда мы пытаемся изменить значение x, оно успешно изменяется.
Стоит заметить, что адрес памяти тоже изменяется. Так происходит потому, что фактически мы не изменили значение x, а создали другой объект с тем же именем x и присвоили ему другое значение. Мы связали имя x с новым значением. Теперь, когда вы вызываете x, он будет выводить новое значение и ссылаться на новое местоположение.
👍7🔥2