Содержание

  1. Почему Python — лучший выбор для автоматизации
  2. Парсинг данных с сайтов
  3. Автоматизация Excel и Google Sheets
  4. Автоматическая отправка email
  5. Telegram-уведомления
  6. Запуск по расписанию
  7. С чего начать

Каждый день бизнес тратит часы на задачи которые можно автоматизировать за один вечер. Сотрудник копирует данные с сайта в таблицу, бухгалтер вручную формирует одинаковые отчёты, менеджер каждое утро рассылает одинаковые письма. Python решает все эти задачи быстро, надёжно и бесплатно.

В этой статье разберём 5 самых частых сценариев автоматизации с реальными примерами кода. Каждый из них можно внедрить за день.

1. Почему Python — лучший выбор для автоматизации

Python стал стандартом автоматизации не случайно. Вот почему:

  • Простой синтаксис — код читается как обычный текст, даже если вы не программист
  • Огромная экосистема — библиотеки для любой задачи: requests, pandas, openpyxl, selenium
  • Кроссплатформенность — работает на Windows, Mac, Linux и любом сервере
  • Бесплатный — никаких лицензий и подписок
  • Большое комьюнити — ответ на любой вопрос найдётся на Stack Overflow
Совет: Установите Python 3.10+ с официального сайта python.org. Для управления пакетами используйте pip. Для изоляции проектов — виртуальное окружение: python -m venv venv

2. Парсинг данных с сайтов

Самый частый сценарий — автоматический сбор данных с сайтов: цены конкурентов, вакансии, новости, курсы валют. Для этого используем две библиотеки: requests для загрузки страниц и BeautifulSoup для парсинга HTML.

# Установка
# pip install requests beautifulsoup4

import requests
from bs4 import BeautifulSoup
import csv

# Загружаем страницу
url = 'https://example.com/prices'
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(response.text, 'html.parser')

# Находим нужные элементы
items = soup.find_all('div', class_='product-card')

# Сохраняем в CSV
with open('prices.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['Название', 'Цена'])
    for item in items:
        name = item.find('h2').text.strip()
        price = item.find('span', class_='price').text.strip()
        writer.writerow([name, price])

Если сайт использует JavaScript для загрузки данных, requests не поможет — нужен Selenium или Playwright. Они управляют реальным браузером и видят весь контент.

Важно: Перед парсингом проверьте файл robots.txt сайта и условия использования. Некоторые сайты запрещают автоматический сбор данных. Добавляйте паузы между запросами чтобы не перегружать сервер.

3. Автоматизация Excel и Google Sheets

Excel — самый распространённый инструмент для работы с данными в бизнесе. Python умеет читать, создавать и изменять Excel-файлы через библиотеки openpyxl и pandas.

# pip install openpyxl pandas

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill

# Читаем данные из Excel
df = pd.read_excel('sales.xlsx', sheet_name='Январь')

# Считаем итоги
total = df['Сумма'].sum()
avg = df['Сумма'].mean()
top = df.nlargest(5, 'Сумма')

# Создаём отчёт
with pd.ExcelWriter('report.xlsx', engine='openpyxl') as writer:
    df.to_excel(writer, sheet_name='Данные', index=False)
    top.to_excel(writer, sheet_name='Топ-5', index=False)

print(f'Итого: {total:,.0f} ₽, Среднее: {avg:,.0f} ₽')

Для работы с Google Sheets используйте библиотеку gspread. После настройки Google API вы можете читать и записывать данные в таблицы так же просто как с локальными файлами.

4. Автоматическая отправка email

Автоматические письма — один из самых востребованных сценариев: уведомления о заказах, ежедневные отчёты, напоминания клиентам. Python отправляет письма через стандартную библиотеку smtplib или через сервисы типа SendGrid.

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

def send_report(to_email, subject, body, attachment=None):
    msg = MIMEMultipart()
    msg['From'] = 'reports@company.ru'
    msg['To'] = to_email
    msg['Subject'] = subject
    msg.attach(MIMEText(body, 'html', 'utf-8'))

    # Прикладываем файл если нужно
    if attachment:
        with open(attachment, 'rb') as f:
            part = MIMEBase('application', 'octet-stream')
            part.set_payload(f.read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition', f'attachment; filename="{attachment}"')
        msg.attach(part)

    with smtplib.SMTP_SSL('smtp.yandex.ru', 465) as server:
        server.login('reports@company.ru', 'пароль_приложения')
        server.send_message(msg)

# Использование
send_report(
    to_email='director@company.ru',
    subject='Отчёт по продажам за вчера',
    body='<h2>Продажи: 847 000 ₽</h2><p>Подробности в приложении</p>',
    attachment='report.xlsx'
)

5. Telegram-уведомления

Telegram-уведомления — самый удобный способ получать алерты от скриптов. Когда что-то пошло не так, остаток на складе упал ниже минимума или отчёт готов — сообщение приходит прямо в телефон.

# pip install python-telegram-bot

import requests

def send_telegram(message, token, chat_id):
    url = f'https://api.telegram.org/bot{token}/sendMessage'
    data = {
        'chat_id': chat_id,
        'text': message,
        'parse_mode': 'Markdown'
    }
    response = requests.post(url, json=data)
    return response.json()

# Настройки (получить у @BotFather)
TOKEN = 'ваш_токен_бота'
CHAT_ID = 'ваш_chat_id'

# Отправляем уведомление
send_telegram(
    message='🔔 *Новая заявка*\n\nИмя: Иван\nТелефон: +79001234567\nСтраница: /contacts/',
    token=TOKEN,
    chat_id=CHAT_ID
)
Как получить chat_id: напишите боту @userinfobot — он пришлёт ваш id. Или добавьте бота в группу и отправьте любое сообщение, потом запросите getUpdates через API.

6. Запуск по расписанию

Скрипт написан — теперь нужно запускать его автоматически. Есть два подхода: cron (Linux/Mac) и библиотека schedule (Python).

Через cron (рекомендуется для серверов)

# Открыть редактор cron
crontab -e

# Примеры расписания:
# Каждый день в 8:00
0 8 * * * /usr/bin/python3 /home/user/reports/daily_report.py

# Каждый час
0 * * * * /usr/bin/python3 /home/user/parsers/prices.py

# Каждые 15 минут по будням
*/15 * * * 1-5 /usr/bin/python3 /home/user/sync/crm_sync.py

Через библиотеку schedule (для простых случаев)

# pip install schedule

import schedule
import time

def daily_job():
    print('Запускаю ежедневный отчёт...')
    # ваш код здесь

def hourly_job():
    print('Синхронизирую данные...')
    # ваш код здесь

schedule.every().day.at('08:00').do(daily_job)
schedule.every().hour.do(hourly_job)

while True:
    schedule.run_pending()
    time.sleep(60)

С чего начать

Если вы никогда не автоматизировали задачи с Python — вот пошаговый план:

  1. Установите Python 3.10+ с python.org
  2. Выберите одну конкретную рутинную задачу — самую раздражающую
  3. Найдите подходящую библиотеку (скорее всего она уже существует)
  4. Напишите минимальный скрипт — сначала просто чтобы работало
  5. Добавьте обработку ошибок и логирование
  6. Настройте запуск по расписанию через cron

Первый рабочий скрипт автоматизации занимает у большинства людей 2–4 часа. После этого порог входа резко снижается — каждый следующий делается быстрее.

Не хотите разбираться самостоятельно?

Гиперсайт занимается автоматизацией на Python с 2015 года. Опишите задачу — оценим и сделаем за вас. От 15 000 ₽, срок от 3 дней.

Обсудить задачу бесплатно