АлександрPython-разработчик

ПАРСЕРЫ / АВТОМАТИЗАЦИЯ / TELEGRAM

Рутинные задачи.
Рабочие решения
на Python.

Соберу данные с сайта, автоматизирую обработку файлов или создам Telegram-бота под вашу задачу.

Можно начать с небольшой задачи с понятным результатом.

Парсер на Python: сбор данных в CSV и JSON
СБОР ДАННЫХ НА PYTHONОт сайта к таблице

Нужные поля → CSV, JSON или база данных

Python PostgreSQL Redis Playwright Docker Linux / VPS HTTP / API

01 / ЧЕМ МОГУ ПОМОЧЬ

Начнём с вашей задачи.

Заранее согласуем объём, срок и то, как проверить результат.

{ }

Собрать данные

Названия, цены, ссылки и другие поля с сайта — в CSV, JSON или базу данных.

Например: выгрузить каталог товаров для дальнейшей обработки.

Обсудить парсер ↗
↻

Убрать ручную работу

Объединить файлы, очистить данные, преобразовать формат или настроить запуск по расписанию.

Например: собрать однотипные выгрузки в общий файл.

Обсудить автоматизацию ↗
↗

Создать Telegram-бота

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

Например: принять заявку и отправить её администратору.

Обсудить бота ↗

Также помогу разобраться с ошибкой в Python и запустить готовое приложение в Docker на Linux VPS.

02 / РАБОТЫ И ДОКАЗАТЕЛЬСТВА

Один проект.
Шесть инженерных задач.

wb_details — моя собственная система мониторинга цен на Wildberries. Ниже — её отдельные компоненты и реальные снимки работы. Демонстрационные данные подписаны отдельно.

01

Мониторинг цен

От наблюдения за товаром до публикации в Telegram.

Задача

Нужно собирать цены, сохранять изменения и передавать отобранные предложения в канал.

Моё решение

Разделил сбор, хранение и публикацию на сервисы. Наблюдения передаются через API и очереди, история хранится в PostgreSQL.

Python · PostgreSQL · Redis · Docker

Скриншоты и пояснения 3 ↗
Опубликованное предложение

Реальное сообщение из канала.

Запись о публикации

Товар, цена и время сопоставляются с сообщением. Текущее состояние товара не заменяет историю публикации.

Запущенные сервисы

Снимок локального Docker-окружения. Показывает состояние контейнеров на момент съёмки.

02

Сбор товарных каталогов

Структурированные данные вместо ручного обхода страниц.

Задача

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

Моё решение

Использовал Playwright и HTTP/API, разбиение больших выдач на сегменты и сохранение состояния в Redis. Полученные наблюдения передаются на запись.

Python · Playwright · HTTP/API · Redis

Скриншоты и пояснения 1 ↗
Товары в базе

Несколько сохранённых товаров с названием, ценой и временем наблюдения. Этот снимок показывает результат записи; сам по себе не подтверждает полный обход каталога.

03

Публикации в Telegram

Карточка предложения и учёт результата отправки.

Задача

Нужно публиковать отобранные предложения с изображением и учитывать результат отправки.

Моё решение

Сервис проверяет актуальность данных перед отправкой, готовит изображение и фиксирует результат в PostgreSQL. Сетевые ошибки обрабатываются отдельно.

Python · aiogram · aiohttp · PostgreSQL

Скриншоты и пояснения 2 ↗
Сообщение в канале

Публикация товара с ценой 4 597 ₽.

Журнал отправки

Статус sent, ключ товара и время соответствующей публикации. Отклонение устаревшего товара этими снимками не демонстрируется.

04

Очередь задач

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

Задача

Сбор и запись работают с разной скоростью. Заданиям нужны состояния и явное подтверждение обработки.

Моё решение

Реализовал очереди ожидания, обработки и ошибок, ACK после записи, повторы и возврат незавершённых заданий.

Python · Redis · PostgreSQL

Скриншоты и пояснения 2 ↗
Подтверждение обработчика

Журнал с идентификаторами обработанных товаров и ACK.

Состояние очередей

Моментальный снимок счётчиков. Восстановление после аварии и сценарий повторов здесь отдельно не показаны.

05

История цен и аномалии

Подозрительный скачок остаётся видимым в истории.

Задача

Резкие изменения цены могут искажать статистику. Нужно хранить наблюдения и помечать подозрительные значения.

Моё решение

Реализовал историю, признаки ценового выброса, защиту от устаревших наблюдений и отдельную дневную статистику.

Python · PostgreSQL · SQL

Скриншоты и пояснения 2 ↗
Пометка аномалии

В записи товара виден признак подозрительного скачка цены.

История наблюдений

Нормальное значение и последующие помеченные выбросы. Исключение из дневной статистики реализовано в коде, но этими снимками не проверяется.

06

Бот подписок

Меню сервиса и учёт срока доступа.

Задача

Нужно объяснить пользователю возможности сервиса и хранить состояние его подписки.

Моё решение

Разработал меню, тарифы, учёт сроков и напоминания. Логика обработки платёжных событий предусмотрена в коде.

Python · aiogram · PostgreSQL

Скриншоты и пояснения 2 ↗
Интерфейс бота

Реальный экран диалога с описанием сервиса и кнопками.

Демонстрационная подписка

Тестовая запись пользователя и срока доступа. Она не является подтверждением реальной оплаты.

03 / ПОРЯДОК РАБОТЫ

Как проходит
работа

  1. Разбираем задачу

    Вы присылаете пример входных данных и описываете желаемый результат.

  2. Фиксируем условия

    Согласуем объём, стоимость, срок и критерии готовности.

  3. Показываю результат

    Проверяем решение на согласованном примере. Обсуждаем необходимые исправления.

  4. Передаю работу

    Передаю согласованные файлы, код и инструкцию по запуску.

ДАВАЙТЕ ОБСУДИМ

Что вы хотите
автоматизировать?

Пришлите ссылку на сайт, пример файла или короткое описание задачи. Уточню детали и предложу объём работы.

@DeadEyels

Открыть в полном размере ↗