Проверка доступности сайтаРазработка и доработка

Скрипт на Python, который проверяет, отвечает ли ваш сайт, и пишет вам со своего ящика, когда он падает

Обычно готово за 15 минутДоработки включеныКонтроль качества
Пакеты
Защита оплатыПодробнее
  • Доработки в рамках пакета бесплатны.
  • Если вы не ответите в течение 3 дней после сдачи, работа будет принята автоматически.

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

Скрипт на Python, который проверяет, отвечает ли ваш сайт, и пишет вам со своего ящика, когда он падает

Пример результата

Пример по пакету «Стандарт»

Сводный отчёт в Excel из ежемесячных продаж 9 магазинов

Как его запускают

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Папка: sales/2026-10, найдено файлов: 9
2026-11-02 09:14:03 INFO  shop-01.csv: 1284 строки
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 строк
2026-11-02 09:14:04 WARN  shop-07.csv: пропущены 3 строки без цены (строки 88, 412, 913)
2026-11-02 09:14:05 INFO  Готово: 10 412 строк -> report-2026-10.xlsx (листы «Продажи» и «Итоги»)

Настройки, а не код

Названия столбцов каждого магазина лежат в settings.ini. Новый магазин или переименованный столбец — это одна строка там:

[columns]
date = Дата, Дата продажи, День
product = Товар, Наименование, Название
quantity = Кол-во, Количество, Шт
price = Цена, Цена за шт

Фрагмент кода

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Читает файл одного магазина и даёт столбцам названия из отчёта."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: нет столбца «{name}» (искали: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Файлы: ZIP-архив с merge_sales.py (310 строк), settings.ini, requirements.txt и README: как установить Python, как запустить скрипт и что значит каждое сообщение в журнале. Клиент запускает скрипт на своём компьютере.

Клиент: небольшая сеть из 9 магазинов канцтоваров. Каждый магазин присылает продажи за месяц в CSV или Excel, и названия столбцов у всех немного разные. Задача: скрипт, который читает все файлы из папки, приводит столбцы к одному виду и сохраняет один отчёт в Excel: все продажи и отдельный лист с итогами по магазинам.

Клиент и все данные вымышлены.

Об услуге

Если магазин или сайт записи ляжет ночью, вы можете узнать об этом только утром от клиента. Этот скрипт на Python открывает указанные страницы каждые несколько минут и присылает письмо, когда одна из них не отвечает, отдаёт ошибку или, начиная со «Стандарта», открывается без слова, которое там должно быть, например без кнопки «В корзину». Перед тревогой он пробует ещё раз, чтобы один медленный ответ вас не будил, и пишет снова, когда сайт вернулся. Письма уходят с вашего собственного почтового ящика, пароль для отправки вы вписываете в настройки сами. Запускайте его на компьютере или сервере, который всегда включён и не совпадает с тем, где живёт сайт, иначе он замолчит вместе с сайтом. Скрипт сообщает о сбое, но не устраняет его.

Что входит

  • Что вы получитеАрхив ZIP со скриптом на Python, README с пошаговой инструкцией и, начиная со «Стандарта», файл настроек с адресами и почтой; код также виден на странице заказа.
  • Упал и поднялсяПисьмо при сбое и письмо, когда всё вернулось
  • Без ложных тревогПовторные попытки перед письмом вам
  • Проверка содержимогоНачиная со «Стандарта», слово, которое должно быть на странице
  • С вашего ящикаВаш собственный ящик, пароль не в коде
  • Понятный кодС комментариями, страницу легко добавить потом

Порядок работы

  1. 1
    ЗадачаВы перечисляете страницы для проверки и куда слать тревоги
  2. 2
    КодМы пишем скрипт и инструкцию по запуску
  3. 3
    ПроверкаВы запускаете его с несуществующей страницей и смотрите, как приходит тревога
  4. 4
    ПравкиВы просите правки в рамках пакета и присылаете текст ошибки, если она есть

Что нужно от вас

Адреса, которые нужно проверять (главная, корзина, страница записи), как часто их проверять и, начиная со «Стандарта», слово или фразу, которые должна показывать каждая страница. Куда слать тревоги и с какого ящика (достаточно назвать почтовый сервис, чтобы мы описали его настройки отправки, а пароль вы впишете сами). Где будет работать скрипт: всегда включённый компьютер или сервер, и какая на нём система (Windows, macOS или Linux).

В брифе мы спросим:

  • Какие страницы проверять?
  • Как часто и что считать сбоем?
  • Куда слать тревоги?
  • Где он будет работать?

Сравнение пакетов

ПакетыЭкономОдин сайт, одно письмо16 $СтандартПроверка с настройками33 $БизнесПрограмма проверки67 $
Срок1 день2 дня3 дня
Доработки123
Коддо 150 строкдо 400 строкдо 1000 строк
Файлов кода1до 3до 8
Файл настроекНетДаДа
Понятные ошибки и журнал работыНетДаДа
Параметры запуска и инструкция для запуска по расписаниюНетНетДа
Инструкция по установке и запуску (README)ДаДаДа
ЯзыкPythonPythonPython
Заказать ЭкономЗаказать СтандартЗаказать Бизнес

Защита оплаты

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

  • Фиксированная ценаЦена пакета не меняется после оплаты.
  • Деньги резервируютсяПри оплате сумма только резервируется. Сервису она переходит, когда вы примете работу.
  • Проверка перед сдачейКаждый результат проходит проверку качества, прежде чем попасть к вам, и вы видите его на странице заказа до приёмки.
  • Бесплатные доработкиПросите изменения в рамках брифа столько раз, сколько предусмотрено пакетом.
  • Приёмка через 3 дняЕсли в течение 3 дней после сдачи вы не примете работу и не попросите изменений, она будет принята автоматически. Если после сдачи вы напишете в чат заказа, заказ подождёт; ответив, мы можем начать отсчёт 3 дней заново и сообщим об этом в чате.
  • Переделка или полный возвратЕсли результат не соответствует брифу и доработки не помогли или срок превышен больше чем вдвое, напишите в чат заказа: мы переделаем работу или полностью вернём деньги.
Как это работает →

Вопросы и ответы

Где его запускать?

На машине, которая всегда включена и отделена от сайта: офисный компьютер, домашний мини-сервер или небольшой арендованный сервер. Если запустить его на том же сервере, что и сайт, он упадёт вместе с ним и не предупредит.

Может он присылать SMS вместо письма?

Это предложение отправляет письма. Многие телефоны показывают письмо как уведомление, а сообщение в сервис с открытым API можно добавить в рамках пакета, со своим ключом в настройках.

Он проверит скорость или безопасность сайта?

Он замеряет, сколько отвечает каждая страница, а в «Премиуме» предупреждает при превышении вашего порога. Безопасность он не проверяет, вирусы не ищет и в админку не заходит.

Сколько писем он может отправить?

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

Не нашли ответ?

Пакеты