Size: a a a

2021 January 15
PythonDigest
Скрапинг современных веб-сайтов без headless-браузеров
https://habr.com/ru/post/537174/?utm_campaign=537174&utm_source=habrahabr&utm_medium=rss

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


Для его демонстрации вместо Selenium, Puppeteer или любого другого решения на основе безголовых браузеров мы просто используем запросы на Python. Я объясню, как можно скрапить информацию из публичных API, которые потребляет на фронтэнде большинство современных веб-сайтов.
источник
PythonDigest
Мы опубликовали современный Voice Activity Detector и не только
https://habr.com/ru/post/537274/?utm_campaign=537274&utm_source=habrahabr&utm_medium=rss

Для решения задачи детекции голоса (Voice Activity Detector, VAD) существует довольно популярный инструмент от Google — webRTC VAD (https://github.com/wiseman/py-webrtcvad). Он нетребовательный по ресурсам и компактный, но его основной минус состоит в неустойчивости к шуму, большом числе ложноположительных срабатываний и невозможности тонкой настройки. Понятно, что если переформулировать задачу не в детекцию голоса, а в детекцию тишины (тишина — это отсутствие и голоса и шума), то она решается весьма тривиальными способами (порогом по энергии, например), но с теми же минусами и ограничениями. Что самое неприятное — зачастую такие решения являются хрупкими и какие-то хардкодные пороги не переносятся на другие домены.
источник
PythonDigest
Как мы в СберМаркете боремся с товарами-призраками
https://habr.com/ru/post/537198/?utm_campaign=537198&utm_source=habrahabr&utm_medium=rss

В офлайне покупатель видит полки магазина и сам может понять, чего нет в наличии, а что можно положить в корзину и купить прямо сейчас. В онлайне«‎глазами»‎ пользователя становится каталог: он всегда должен быть актуальным. 
 
источник
2021 January 16
PythonDigest
Как преобразовать аудиоданные в изображения
https://habr.com/ru/post/536834/?utm_campaign=536834&utm_source=habrahabr&utm_medium=rss
источник
2021 January 18
PythonDigest
#python #pydigest

Сборник Python новостей уже перед вами.

В выпуске Python Дайджест вы найдете:

- Стилометрия, или как отличить Акунина от Булгакова с помощью 20 строк кода?
- Как преобразовать аудиоданные в изображения
- Клиент-серверный IPC на multiprocessing
- Чистый Cython VS nvc++: жжем металлические пластины на GPU для сравнения скорости
- Нейросеть для раскрутки собачьего аккаунта в Инстаграм или робопёс в действии
- Строим надёжную конкурентность с FSP и моделированием процессов
- Скрапинг современных веб-сайтов без headless-браузеров
- django-etc 1.3.0 — пользовательские формы в админке Django

Заходите в гости - https://pythondigest.ru/issue/369/
Присылайте интересные новости через форму на сайте.
источник
PythonDigest
django-etc 1.3.0 — пользовательские формы в админке Django
https://pythonz.net/articles/356/

Как быстро и просто создать страницу с пользовательской формой для административного интерфейса Django.
источник
PythonDigest
Constraint Programming или как решить задачу коммивояжёра, просто описав её
https://habr.com/ru/post/537492/?utm_campaign=537492&utm_source=habrahabr&utm_medium=rss

Пожалуй, наиболее популярной парадигмой программирования является императивное программирование. Но это не единственный вид программирования, широко известны функциональное и логическое программирование. Constraint Programming (Программирование в ограничениях/Ограниченное программирование) не так популярно. Но это очень мощный инструмент для решения комбинаторных задач. Вместо реализации алгоритма, который решает задачу, с последующей тратой кучи времени на его отладку, рефакторинг и оптимизацию, программирование с ограничениями позволяет вам просто описать модель в специальном синтаксисе, а особая программа (решатель - solver) найдет решение за вас (или скажет, если их нет). Впечатляет, не правда ли? Мне кажется, каждый программист должен знать о такой возможности.
источник
PythonDigest
Строим надёжную конкурентность с FSP и моделированием процессов
https://habr.com/ru/post/536838/?utm_campaign=536838&utm_source=habrahabr&utm_medium=rss

Сегодня посмотрим как смоделировать программу с конкурентностью на FSP. Сначала давайте разберемся, зачем вообще нужна конкурентность. Вот что можно сделать с её помощью:
 
 
Повысить производительность многопроцессорного железа, это и называется параллелизм;
Увеличить пропускную способность приложения (вызову ввода-вывода нужно блокировать только один поток);
Сделать приложение отзывчивее за счёт выполнения основных задач параллельно фоновым (высокоприоритетный поток для запросов пользователей);
Структурировать программу, повысив её эффективность (взаимодействующие со средой программы управляют несколькими действиями и обрабатывают несколько событий).
источник
PythonDigest
The Real Python Podcast – Episode #43: Deep Reinforcement Learning in a Notebook With Jupylet + Gaming and Synthesis
https://realpython.com/podcasts/rpp/43/
источник
PythonDigest
Использование модуля tempfile в Python
https://egorovegor.ru/ispolzovanie-modulya-tempfile-v-python/

В этой статье рассмотрим модуль из стандартной библиотеки для создания временных файлов и папок в Python.
источник
PythonDigest
Как определять собственные классы исключений в Python
https://habr.com/ru/post/537642/?utm_campaign=537642&utm_source=habrahabr&utm_medium=rss

Ваш интерес к новой книге "Секреты Python Pro (https://www.piter.com/collection/new/product/sekrety-python-pro)" убедил нас, что рассказ о необычностях Python заслуживает продолжения. Сегодня предлагаем почитать небольшой туториал о создании кастомных (в тексте — собственных) классах исключений. У автора получилось интересно, сложно не согласиться с ним в том, что важнейшим достоинством исключения является полнота и ясность выдаваемого сообщения об ошибке. Часть кода из оригинала — в виде картинок.
источник
PythonDigest
[Видео] Запуск проекта на uWSGI, Django и PostgreSQL в облаке
https://pythonz.net/videos/154/

О том, как быстро создать скелет веб-проекта на Django, uWSGI и PostgreSQL, доставить его в облако и запустить там.
источник
2021 January 19
PythonDigest
StackOverflow: интересные вопросы за неделю (cclix)
http://python-weekly.blogspot.com/2021/01/cclix-stackoverflow-python-report.html
источник
PythonDigest
Как быстро получить много данных от Битрикс24 через REST API
https://habr.com/ru/post/537694/?utm_campaign=537694&utm_source=habrahabr&utm_medium=rss

Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционный способ для этого - обращение к серверу через метод *.list (например, crm.lead.list для лидов) с параметром select, перечисляющим список требуемых полей. При этом чем больше размер списка и чем больше полей вы выгружаете, тем дольше сервер формирует ответ.
Плюс, в силу того, что информация сервером выдается постранично, существует несколько стратегий для того, чтобы получить весь список, и некоторые из них позволяют ускорять процесс на порядки по сравнению с последовательными запросами.
источник
PythonDigest
Прокачиваем скрипты симуляции HDL с помощью Python и PyTest
https://habr.com/ru/post/537704/?utm_campaign=537704&utm_source=habrahabr&utm_medium=rss
источник
PythonDigest
Нейросеть для раскрутки собачьего аккаунта в Инстаграм или робопёс в действии
https://habr.com/ru/post/537714/?utm_campaign=537714&utm_source=habrahabr&utm_medium=rss

Скрипт для раскрутки назовём для краткости "робопёс". Представим, что этот скрипт от лица собачьего аккаунта периодически собирает посты по хэштегам на собачьи темы и ставит лайки таким постам. Какая-то часть авторов этих постов заинтресуется, кто им поставил лайк, и зайдёт на страницу собачьего аккаунта. Ну а дальше, как пойдёт. Кто-то пролистает пару экранов вниз и пойдёт дальше. Кто-то поставит робопсу пару ответных лайков (что тоже неплохо, лайки увеличивают охват постов). А если аккаунт понравится (что не исключено, ибо пёс весьма харизматичен (https://www.instagram.com/g.r.o.o.o.t/)), может и подписаться.
источник
PythonDigest
Talk Python to Me: #299 Personal search engine with datasette and dogsheep
https://talkpython.fm/episodes/show/299/personal-search-engine-with-datasette-and-dogsheep

Audio
источник
PythonDigest
Многопоточное скачивание файлов с ftp python-скриптом
https://habr.com/ru/post/537774/?utm_campaign=537774&utm_source=habrahabr&utm_medium=rss

Однажды передо мной встала задача копирования большого количества файлов с ftp-сервера. Нужно было делать бэкап. Казалось бы, что может быть проще! Но увы, ничего готового работающего так же быстро для моих условий найти не удалось.
источник
PythonDigest
api-client 1.2.2 - гибкая библиотека для написания понятных апи клиентов
https://github.com/MikeWooster/api-client

Клиент для взаимодействия с api должен быть чистой абстракцией по сравнению с api третьей части, с которой вы общаетесь. Он должен быть простым для понимания и нести исключительную ответственность за вызов конечных точек и возврат данных. Для этого APIClient берет на себя другие (часто дублирующиеся) обязанности, такие как аутентификация и обработка ответов, перемещая этот код за пределы чистой абстракции, которую вы создали.
источник
PythonDigest
Стив пишет заклинания на Python. Обучение детей программированию в Minecraft
https://habr.com/ru/post/537202/?utm_campaign=537202&utm_source=habrahabr&utm_medium=rss
источник