TGViewer
Channel Public Channel
Python community developers

Python community developers

@python_scrypt

Сообщество программистов на языке Python🙂
🔥Разбор вопросов и задач с собеседований
🔥Обзор популярных библиотек и фишек языка
🔥Интересные идеи программ

Сотрудничество - @BorryaD

@Python_community_developers_bot
Subscribers
1.51K
Photos
367
Videos
45
Links
241

Showing posts older than #274 · Back to latest

Older Posts 18 shown
Post #272 547
🔥 Полезные библиотеки Python

Requests-HTML
— максимально простая и интуитивно понятная библиотека для парсинга html включая асинхронный парсинг.

Установка:
$ pip install requests-html

Пример использования:

1️⃣
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://python.org/')


2️⃣
from requests_html import AsyncHTMLSession
asession = AsyncHTMLSession()
async def get_pythonorg():
r = await asession.get('https://python.org/')
return r

async def get_reddit():
r = await asession.get('https://reddit.com/')
return r

async def get_google():
r = await asession.get('https://google.com/')
return r

results = asession.run(get_pythonorg, get_reddit, get_google)
results # check the requests all returned a 200 (success) code
[<Response [200]>, <Response [200]>, <Response [200]>]

for result in results:
print(result.html.url)


Из коробки поддерживает сохранение cookie файлов, имитирует user-agent, асинхронные запросы, JavaScript и д.р. плюшки.

⚙️ GitHub/Инструкция

#python #github #soft
Post #271 454
Открытие веб-страницы

Выше приведен простой рецепт открытия веб-страниц из вашего терминала Python или кода.
Post #270 493
Функция shorten()

Функция shorten() модуля textwrap усекает заданный текст, чтобы он поместился в заданную ширину width.

Сначала все пробелы заменяются одиночными пробелами. Если результат соответствует ширине, он возвращается. В противном случае с конца отбрасывается слова, чтобы оставшийся текст плюс заполнитель placeholder (по умолчанию [...]) поместились в указанную ширину width.
Post #269 529
🔥 Полезные библиотеки Python

LeakSearch — простой в использовании, удобный инструмент для поиска утекших в сеть паролей по базам(ProxyNova, LocalFile).

Поддерживаем поиск по ключевым словам, домены, пользователи и т.д., экспорт файлов в JSON или TXT.

Установка:
$ git clone https://github.com/JoelGMSec/LeakSearch

$ cd LeakSearch

$ pip install -r requirements.txt


Использование:
$ python LeakSearch.py


⚙️ GitHub/Инструкция

#python #soft #github
Post #268 575
Query JSON

JMESpath – это язык запросов для JSON, который позволяет получать необходимые данные из документа или словаря JSON. Библиотека доступна как для Python, так и для других ЯП, что расширяет ее возможности.

#библиотеки
Post #267 520
Размер в байтах

Этот пример возвращает длину строки в байтах, что удобно, когда вам нужно знать размер строковой переменной.
Post #266 699
🔥 Полезные библиотеки Python

PrivatePing
— защищённое приложение для переписки, разработанное на базе Python Django.

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

PrivatePing гарантирует сквозное шифрование, анонимность при входе в систему и надёжную аутентификацию.

📂 GitHub/Инструкция

Пробуем тут

#python #soft #github
Post #263 705
🔥 Полезные библиотеки Python

AniPortrait — Python инструмент для создания высококачественной анимации на основе звука и портретного изображения.

📂 GitHub/Инструкция

#python #soft #github
Post #262 493
Делаем планировщик задач 

К моему удивлению, далеко не все знают про пакет schedule, который позволяет планировать задачи и повторять их через промежуток времени. 

Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще schedule не требует внешних зависимостей и сам в целом легковесный. 

Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах. 

#schedule
Post #261 554
Выделение базовой части слов

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

Таким образом, было бы полезно при анализе текста извлекать базовые формы слов. Можно сказать, что для процесса выделения базовой части слова необходимо обрезать концы слов.

В модуле Python NLTK (Natural Language Toolkit Package) есть различные пакет, связанные с данным процессом выделения базовой части и использующие разные алгоритмы.

Один за пакетов, snowball, использует алгоритм соответственно Snowball, разработанный Мартином Портером. Алгоритм поддерживает большинство популярных языков. Подробнее об алгоритме можно почитать тут.

#snowball
Post #260 521
Работаем с атрибутами объектов

Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции: getattr, setattr, delattr и hasattr.

По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет.

Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута.

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

#классы #атрибуты
Post #259 459
Скачиваем вебсайты целиком

Максимально простой, но при этом мощный пакет pywebcopy поможет вам клонировать отдельные веб-страницы или даже целые сайты.

Функция save_webpage скачивает страницу по указанной ссылке, в аргументы также можно передать путь, куда сохранить результат.

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

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

#pywebcopy
Post #258 501
Нижнее подчеркивание

В Python имя переменной может состоять из одного подчеркивания. Хотя такое имя не достаточно описательно и не должно использоваться, есть по крайней мере три случая, когда _ имеет общепринятый смысл.

Первое, _ используется, когда вам нужно придумать имена для значений, которые вам не нужны — например, в циклах for.

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

Третье, документация модуля gettext рекомендует псевдоним _() для функции gettext(), чтобы минимизировать загромождение вашего кода.

#тонкости
Post #257 443
Получаем текст с картинки

У Google есть система Tesseract, которая позволяет парсить текст с картинок с помощью оптического распознавания символов.

И в качестве обертки над их системой, был создан пакет pytesseract, который максимально удобно и легко использовать.

Для того, чтобы получить текст с картинки, нужно вызвать метод image_to_string. Если вас интересует текст на русском, то следует указать аургмент lang как 'rus'.

Еще важно, что для открытия картинок рекомендуется использовать pillow, хоть и имеется возможность просто указать путь к файлу в виде строки.

#pytesseract
Post #256 428
Превью из длинного текста

Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.

Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод shorten из модуля textwrap.

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

#строки #textwrap
Post #255 431
Отлавливаем баги с assert

При выполнении инструкции assert с логическим выражением, результат которого равен True, ничего не произойдет.

Но если попробовать выполнить инструкцию assert с логическим выражением, которое равно False, то будет сгенерировано исключение AssertionError.
 
Исключения AssertionError предназначены скорее для отладки. При написании программ на этапе разработки мы можем видеть, что делаем что-то не так (например, передали в метод некорректное значение). 

Также не нужно, к примеру, обрабатывать пользовательский ввод и пытаться обработать исключение AssertionError блоком try-except.

Если в вашем коде будет очень много assert'ов, то это затронет и производительность программы.

#исключения #assert
Post #254 409
Редактируем видео

Пакет moviepy позволяет обрезать и склеивать видео, добавлять видеоэффекты, а также редактировать звук.

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

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

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

#moviepy
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →