🟠 Каждую минуту проверяет содержимое указанного сайта.🟠 Если сайт изменился — выводит сообщение "Сайт обновился!".
Код:
import requests
import hashlib
import time
URL = 'https://example.com' # замени на нужный сайт
CHECK_INTERVAL = 60 # интервал проверки в секундах
def get_hash(url):
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
return hashlib.md5(response.text.encode('utf-8')).hexdigest()
except Exception as e:
print("Ошибка при запросе:", e)
return None
def monitor_site(url):
print(f"Следим за сайтом: {url}")
old_hash = get_hash(url)
if old_hash is None:
print("Не удалось получить начальное состояние.")
return
while True:
time.sleep(CHECK_INTERVAL)
new_hash = get_hash(url)
if new_hash is None:
continue
if new_hash != old_hash:
print(f"[{time.ctime()}] Сайт обновился!")
old_hash = new_hash
else:
print(f"[{time.ctime()}] Без изменений.")
monitor_site(URL)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍7🔥6
pip install plotext
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤6🔥3👍2🥰1
aiodns 🟠 Быстрее стандартного socket.getaddrinfo() в асинхронных приложениях🟠 Хорошо работает с aiohttp и другими async-клиентами🟠 Поддерживает MX, NS, TXT и другие DNS-запросы
pip install aiodns
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤4
🟠 Перебирает порты в диапазоне 20–1024 у заданного IP/доменного имени🟠 Проверяет, какие из них открыты (т.е. доступны для подключения)
Код:
import socket
target = input("Введите IP или домен для сканирования: ").strip()
print(f"\nСканирование {target}...\n")
for port in range(20, 1025):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(0.5)
result = s.connect_ex((target, port))
if result == 0:
print(f"[+] Порт {port} открыт")
s.close()
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍9😁2
Всем хорошего воскресного дня! 👋
Решил познакомиться с вами поближе — интересно, кто вы, чем занимаетесь и как именно используете Python в своей практике или обучении.
Решил познакомиться с вами поближе — интересно, кто вы, чем занимаетесь и как именно используете Python в своей практике или обучении.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍5🔥4
В каких областях вы чаще всего применяете Python?
Anonymous Poll
36%
50%
16%
20%
31%
10%
21%
🔥12👍5❤2🎉2😁1
Какой контент вам было бы наиболее интересно видеть на канале, учитывая, что многие из вас используют Python для автоматизации, веб-разработки и обучения?
Anonymous Poll
48%
Примеры и кейсы по автоматизации и DevOps
50%
Обзоры библиотек и инструментов для Python
61%
Разработка Telegram-ботов, для автоматизации чего-либо
6%
Другое (предложите в комментариях)
👍13🔥7❤4
pip install docker)🟠 Принимает название образа, имя контейнера и отображение портов.🟠 Подключается к локальному Docker через Python SDK.🟠 Скачивает указанный образ (если его ещё нет).🟠 Запускает контейнер с флагом detach=True и политикой перезапуска.🟠 Обрабатывает ошибки через DockerException.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4🔥4
💬 В этом примере покажу, как с помощью Python автоматизировать процесс резервного копирования базы данных MySQL в ваших DevOps-проектах.
mysqldump, которую вызовем из Python через модуль subprocess. Такой подход надёжен и широко используется на практике.import os
import time
import subprocess
def backup_database(host, username, password, database, output_dir):
timestamp = time.strftime('%Y%m%d_%H%M%S')
output_file = os.path.join(output_dir, f'{database}_backup_{timestamp}.sql')
cmd = [
'mysqldump',
f'-h{host}',
f'-u{username}',
f'-p{password}',
database
]
try:
with open(output_file, 'w') as f:
subprocess.run(cmd, stdout=f, check=True)
print(f'Database backup saved to {output_file}')
except subprocess.CalledProcessError as e:
print(f'Error during backup: {e}')
if __name__ == '__main__':
db_host = 'localhost'
db_username = 'your_db_username'
db_password = 'your_db_password'
db_name = 'your_database_name'
backup_output_dir = '/path/to/backup_directory'
backup_database(db_host, db_username, db_password, db_name, backup_output_dir)
☝️ В итоге скрипт создаст файл с дампом базы в указанной папке, добавив к имени текущую дату и время.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍10🔥4
Ansible — это мощный инструмент автоматизации, и если стандартных модулей недостаточно, можно легко писать свои модули на Python.
from ansible.module_utils.basic import AnsibleModule
def run_module():
module_args = dict(
some_list=dict(type='list', required=True)
)
result = dict(output=[])
module = AnsibleModule(
argument_spec=module_args,
supports_check_mode=True
)
if module.check_mode:
module.exit_json(**result)
if len(module.params['some_list']) <= 1:
module.fail_json(msg='some_list needs more than 1 item', **result)
for item in module.params['some_list']:
result['output'].append({"value": item, "extra": "n/a"})
module.exit_json(**result)
def main():
run_module()
if __name__ == '__main__':
main()
☝️ Этот модуль принимает список, проверяет его длину и возвращает обработанный результат. Это базовый пример, который можно расширять под любые задачи.
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍14❤6🔥2👏1
astor 🟠 Преобразует AST → Python-код (unparsing)🟠 Удобна для автогенерации и модификации кода🟠 Поддерживает сохранение форматирования и комментариев (частично)
pip install astor
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4
import os
def bulk_rename(folder_path, old_name_part, new_name_part):
if not os.path.isdir(folder_path):
raise NotADirectoryError(f"Путь «{folder_path}» не найден")
for filename in os.listdir(folder_path):
if old_name_part in filename:
new_filename = filename.replace(old_name_part, new_name_part)
old_full = os.path.join(folder_path, filename)
new_full = os.path.join(folder_path, new_filename)
# Пропускаем, если имена совпадают
if old_full == new_full:
print(f"Пропущено (имена совпадают): {filename}")
continue
try:
os.rename(old_full, new_full)
print(f"Переименовано: {filename} → {new_filename}")
except OSError as e:
print(f"Ошибка при переименовании {filename}: {e}")
if __name__ == "__main__":
folder = '/path/to/your/folder'
bulk_rename(folder, 'old_part', 'new_part')
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍5❤3
dill 🟠 Работает там, где pickle падает🟠 Подходит для multiprocessing с функциями без глобального контекста🟠 Можно сохранить/восстановить сессию (dill.dump_session())
pip install dill
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍3
Bot-EveryDay-master.zip
78.7 KB
aiogram postgresql #telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥18👍7👏2
tonview-bot-main.zip
37.9 KB
aiogram, aiohttp sqlalchemy #telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤10😁4👏3👍2
h2o 🟠 Встроенный AutoML: подбор моделей, стэкинг, тюнинг🟠 Поддержка GBM, Random Forest, GLM, XGBoost, Deep Learning🟠 Интерфейс через Python, R, Web UI или REST API🟠 Умеет работать распределённо (кластер), обрабатывать сотни ГБ/ТБ данных
pip install h2o
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🥰2
opencv-python, numpyimport cv2
cap = cv2.VideoCapture(0)
face_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
body_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + "haarcascade_fullbody.xml")
while True:
_, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, width, height) in faces:
cv2.rectangle(frame, (x, y), (x + width, y + height), (255, 0, 0), 3)
cv2.imshow("Camera", frame)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍13
optuna🟠 Поддерживает scikit-learn, PyTorch, XGBoost, LightGBM, и любые кастомные модели🟠 Быстрый поиск за счёт pruning (обрезания неудачных вариантов на ранней стадии)🟠 Простое API: пишешь целевую функцию и указываешь диапазоны параметров🟠 Поддержка распределённой оптимизации и визуализации
pip install optuna
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤3👍2🤩1
Constructor-Telegram-Bots-master.zip
129.3 KB
django postgresql #telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29❤6👍5
dtreeviz 🟠 Показывает, как данные проходят через узлы🟠 Поддерживает sklearn, xgboost, lightgbm🟠 Интерактивные графики с подписями, распределениями и split‑значениями
pip install dtreeviz
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤5👍4