Python/ django
58.9K subscribers
2.07K photos
61 videos
47 files
2.79K links
по всем вопросам @haarrp

@itchannels_telegram - 🔥 все ит-каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - 📚

@pythonlbooks

РКН: clck.ru/3FmxmM
加入频道
Forwarded from Zen of Python
​​Бенчмарк Wi-Fi сетей на wifi-heat-mapper

wifi-heat-mapper — питонская версия Wi-Fi Analyzer, позволяющая не только визуализировать силу сигнала, но и рассчитывать мощность в любой точке помещения

#библиотека

@zen_of_python
🖥 Python-разработчики подверглись сложной атаке на цепочку поставок

Аналитики компании Checkmarx сообщили, что после загрузки вредоносного клона популярной утилиты Colorama несколько Python-разработчиков, включая сопровождающего Top.gg, оказались заражены малварью, похищающей информацию. По мнению специалистов, основной целью кампании, скорее всего, была кража данных и их последующая монетизация.

Атака началась аж в ноябре 2022 года, когда хакеры впервые загрузили вредоносные пакеты в Python Package Index (PyPI). В последующие годы на PyPI было добавлено еще больше пакетов с малварью. Все они были похожи на популярные опенсорсные инструменты, что повышало вероятность их попадания в результаты поисковых систем.

Утилита Colorama, которую в числе прочих подделали злоумышленники, обеспечивает работу последовательностей символов ANSI в Windows и в настоящее время насчитывает более 150 млн загрузок ежемесячно.

Чтобы организовать атаку на цепочку поставок, хакеры клонировали эту утилиту, внедрили в нее вредоносный код и разместили вредоносную версию на поддельном домене. Благодаря тому, что атакующие использовали тайпсквоттинг, сайт хакеров (files.pypihosted[.]org) походил на легитимное зеркало files.pythonhosted.org.

Для распространения вредоносного пакета злоумышленники не только создали вредоносные репозитории под собственными учетными записями, но также взломали ряд известных аккаунтов. В их числе был GitHub-аккаунт editor-syntax, поддерживающий платформу для поиска и обнаружения серверов, ботов и других социальных инструментов в Discord, Top.gg, сообщество которой насчитывает более 170 000 участников.

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

📎 Читать подробнее

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 HTTP-запросы и обработка JSON в Python: API Google Directions

Для выполнения HTTP-запросов и обработки JSON в Python используйте модуль requests:
import requests

response = requests.get('https://api.example.com/end-point')
data = response.json()

Замените 'https://api.example.com/end-point' на необходимый API endpoint. Прежде чем приступить к обработке данных, проверьте, был ли запрос успешным.


Составление продуктивных HTTP-запросов. Для более продвинутых запросов передавайте параметры в requests.get() используя словарь, чтобы избежать конкатенации строк:
params = {'origin': 'Нарния', 'destination': 'Хогвартс', 'waypoints': 'Средиземье|Мордор', 'sensor': 'false'}
response = requests.get('https://maps.googleapis.com/maps/api/directions/json', params=params)

Важно: значение waypoints должно быть указано в виде одной строки, например, 'Средиземье|Мордор'.


Тщательное извлечение данных из JSON

После получения ответа, преобразуйте JSON с помощью метода .json() и проверьте код ответа:
data = response.json()
if response.status_code == 200:
from pprint import pprint
pprint(data) # Выведем данные структурированно для удобства
else:
print("Ошибка HTTP-запроса:", response.status_code)



Обработка вложенных структур JSON

Обработка вложенных структур в JSON требует внимательного подхода. На Python это выполнимо:
for route in data['routes']:
for leg in route['legs']:
for step in leg['steps']:
print(step['html_instructions'])

Используйте циклы для перемещения по структуре данных.


Важные моменты, которые надо запомнить
— Всегда проверяйте статус ответа.
— Применяйте метод .json(), а при необходимости — json.loads(response.content).
— Не ограничивайтесь в использовании параметров запроса: чем больше их, тем лучше.

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Форк Newspaper4k продолжает развитие библиотеки Newspaper3k

Библиотека Newspaper3k для Python 3 предназначена для скрейпинга и автоматического парсинга новостных статей. С 2018 года проект не обновляется. Разработчик Андрей Параскив представил проект-форк Newspaper4k, в рамках которого он планирует закрывать баги и продолжать улучшать работу библиотеки.

Newspaper предназначена для парсинга статей с новостных сайтов. Все данные Newspaper обрабатывает в Юникоде и поддерживает 38 языков, включая русский. В библиотеку встроены автоматические парсеры с механизмами естественной обработки языка. Кстати, поэтому этот проект часто рекомендуют с припиской «искусственный интеллект». Основная задача библиотеки — извлечь релевантные данные (заголовок, автор, тело статьи, изображения, тэги, краткие пересказы и прочее), убрав ненужные элементы и тексты-заглушки, которые не несут полезной информации.

По качеству работы Newspaper и Newspaper3k сравнивали с сервисом социальных закладок Instapaper. Хотя Оу-Ян поделился подробной документацией, библиотека доросла до того, что к ней писали сторонние руководства. Некоторые из них остались на GeeksforGeeks и ScrapeOps: это инструкции по скрейпингу с помощью Newspaper3k.

🖥 GitHub

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ MindGraph

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

Github
🖥 VS Code, python, контейнеры — как обуздать эту триаду и разрабатывать внутри контейнера

Держите небольшой, но очень полезный туториал о настройке VS Code для работы с контейнерами при помощи Python.
После того, как вы всё настроете по примеру из статьи останется только нажать F1, и в появившейся строке ввода ввести "Open folder in container". После этого выбрать корневую папку проекта. После чего запустится сборка контейнера и папка откроется внутри контейнера.

📎 Статья

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышла Django 5.0 🔥

Что добавили/обновили/исправили?

В предыдущих версиях мы использовали nulls_last=False. Теперь nulls_first и nulls_last могут быть True или None. Поэтому теперь в некоторых местах вместо значения по умолчанию находится nulls_last = None


- nulls_last = False
+ nulls_last = None
if ordering_by == OrderingField.FIELD_START_AT:
nulls_last = True


В сигналах появился новый тип асинхронных ресиверов async_receivers. Его добавили в класс SignalBlocker, теперь он временно отключает сигнал.

• Если после refresh_from_db надо дальше по коду использовать закешированные значения из базы данных, появился такой хак:

my_model_obj._meta.private_fields = []
my_model_obj.refresh_from_db()



https://docs.djangoproject.com/en/5.0/releases/5.0/

@pythonl
🖥 Google Analytics 4 и Python - практические приемы работы

Очень детальное руководство о том, как с помощью Python выполнять запросы к API Google Analytics 4 (Data API), выгружать данные по стандартным отчетам, ну и сохранять статистику вашего ресурса Google Analytics 4 на компьютер.
В конце статьи есть все исходники запросов, чтобы вы смогли взять их за основу при написании собственной программы.

Содержание
• Создание проекта
• Быстрый запуск API
• Добавление сервисного аккаунта в Google Analytics 4
• Загрузка приватного ключа на Google Диск
• Подготовка программы
• Выгрузка данных по отчетам
— Источники трафика (User acquisition)
— Привлечение трафика (Traffic acquisition)
— События (Evemts)
— Конверсии (Conversions)
— Страницы и экраны (Pages and screens)
— Целевая страница (Landing Page)
— Совершённые покупки (Ecommerce purchases)
— Демографические данные (Demographic details)
— Технические данные (Tech details)

📎 Статья

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Релиз Nuitka 2.0 — компилятора для языка Python

Относительно недавно состоялся релиз Nuitka 2.0. Это проект компилятора для трансляции скриптов на языке Python в представление на языке C, которое затем можно скомпилировать в исполняемый файл, использующий libpython для обеспечения максимальной совместимости с CPython.
В программном решении используются штатные средства CPython для управления объектами.

📎 Подробнее
🖥Исходный код проекта Nuitka выложен на GitHub под лицензией Apache.

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Ляп в Питоне: x + 1.0 < x

▶️Хотите взорвать себе мозг?
При смешивании типов возможно неочевидное поведение, можете проверить:
>>> x = (1 << 53) + 1
>>> x + 1.0 < x
True


▶️Здесь всё дело в том, что в одной части неравенства при приведении x к другому типу была потеряна точность, а в другой части — нет.

Значение переменной x конвертируется в тип float.
При этом x непредставим точно в виде float, поэтому выбирается ближайшее (меньшее здесь) представимое число: x —> float(x-1). Поэтому сумма получается неточной, вся цепочка выглядит так:
x+1.0 -> float(x-1)+1.0 -> (x) -> float(x-1)

Сравнение float < int происходит точно. Значение x (int) математически больше x+1.0 (float).

Как-то так.

📎 Вот ещё некоторые примеры смешения типов

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 На портале репозиториев PyPI заблокировали 174 учётные записи из‑за неавторизированного доступа к ним хакеров

Администраторы репозитория Python‑пакетов PyPI (Python Package Index) рассказали о неавторизированном доступе к 174 учётным записям пользователей сервиса. Представители PyPI предполагают, что доступ к записям пострадавших пользователей был получен из ранее скомпрометированных учётных данных в результате взломов или утечек баз пользователей других сервисов.

Активность атакующих была выявлена администраторами после получения серии жалоб 31 марта 2024 года. В жалобах пользователи сообщали о получении уведомлений от PyPI об активации двухфакторной аутентификации и другой активности, но хозяева учётных записей не логинились на портале и сами ничего не меняли. Проанализировав логи авторизации, администраторы портала установили доступ третьих лиц к учётным записям 174 пользователей.

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Sending a WhatsApp Message using Python

Отправка сообщения WhatsApp с помощью Python

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Kali Linux
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Инструмент OSINT на Python для сканирования сайта и извлечения полезной информации.

Укажите начальный URL-адрес и автоматически соберите URL-адреса для сканирования через href, robots.txt и карту сайта
Извлеките полезную информацию для поиска:
- Электронные письма
- Ссылки в социальных сетях
- Поддомены
- Файлы
- Список просмотренных ссылок на сайты
- Rомментарии
- IP-адреса
Маркетинговые теги (UA, GTM и т.д.)
"Интересные" находки, такие как контент frame ancestors и ресурсы, возвращающие содержимое в формате JSON
Внутри встроенный FireProx для автоматического создания эндпоинтов для каждого поддомена, смены исходного IP-адреса и очистки в конце
Поддержка HTTP/SOCKS прокси


git clone https://github.com/chm0dx/creepyCrawler.git
cd creepyCrawler
pip install -r requirements.txt


Github

@linuxkalii
Please open Telegram to view this post
VIEW IN TELEGRAM
📌Python Data Science Bootcamp

Держите мощное практическое видео по работе с Pandas, Matplotlib, NumPy, Seaborn, Scikit-learn, Plotly

Ключевые моменты в видео:
01:28:00 — Pandas
02:54:02 — NumPy
03:05:26 — Визуализация данных с помощью Matplotlib
03:26:22 — Визуализация данных с помощью Seaborn
04:39:40 — Анализ данных
05:03:12 — Элементы ML, использование Scikit-learn

📎 Видео

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM