Задачи чат-бота: сбор информации. Продукт: для себя. Техзадание есть. Добрый день. Ниже тз Готов обсудить детали голосом, пишите ТЗ по автоматизации получения информации о новых откликах 1. Общее описание Разработать скрипт для автоматического сбора отзывов с заданных веб-страниц и отправки результатов в Telegram группу. 2. Функциональные требования 2.1. Планировщик задач • Реализовать систему запуска по расписанию • Конфигурируемое время запуска (ежедневно, раз в неделю и т.д.) • Возможность ручного запуска 2.2. Парсинг веб-страниц • Чтение списка URL из конфигурационного файла • Последовательный переход по всем URL • Обработка JavaScript-контента (если требуется) • Ожидание загрузки динамического контента 2.3. Поиск и извлечение данных отзывов Идентификация блоков с отзывами: • Поиск по CSS-селекторам/классам • Поиск по HTML-структуре • Резервные методы поиска Извлекаемые данные для каждого отзыва: • Дата отзыва • Имя автора • Заголовок отзыва • Текст отзыва • URL страницы с отзывом 2.4. Обработка данных • Валидация извлеченных данных • Очистка текста (удаление лишних пробелов, спецсимволов) • Приведение дат к единому формату • Обработка отсутствующих данных 2.5. Экспорт в Excel Структура таблицы: • Колонка A: Бренд • Колонка B: Дата отзыва • Колонка C: Имя автора • Колонка D: Заголовок • Колонка E: Текст отзыва • Колонка F: URL источника • Колонка J: Дата сбора данных Требования к файлу: • Формат: .xlsx • Автоподбор ширины колонок • Заголовки столбцов • Сортировка по дате отзыва (новые сверху) 2.6. Отправка в Telegram • Интеграция с Telegram Bot API • Отправка файла в указанную группу/канал • Текстовое сообщение с краткой статистикой • Обработка ошибок отправки 3. Технические требования 3.1. Язык и технологии • Язык программирования: Python 3.8+ • Библиотеки: ◦ requests/httpx для HTTP-запросов ◦ BeautifulSoup4/lxml для парсинга HTML ◦ selenium для JavaScript-контента (при необходимости) ◦ pandas/openpyxl для работы с Excel ◦ python-telegram-bot для интеграции с Telegram ◦ APScheduler для планировщика задач 3.2. Обработка ошибок • Логирование всех этапов работы • Обработка недоступных URL • Обработка изменений структуры сайтов • Уведомление об ошибках в Telegram • Повторные попытки при сбоях 3.3. Производительность • Время выполнения не более 30 минут • Параллельная обработка URL (опционально) • Эффективное использование памяти 4. Требования к установке и запуску 4.1. Установка • requirements.txt со всеми зависимостями • Детальные инструкции по установке • Настройка виртуального окружения 4.2. Запуск • Основной скрипт: main.py • Скрипт для ручного запуска: run_manual.py • Скрипт для тестирования: test_parser.py 5. Документация 5.1. Техническая документация • Описание архитектуры • Комментарии в коде • Инструкция по добавлению новых сайтов 5.2. Пользовательская документация • Руководство по настройке • Инструкция по запуску • Примеры конфигурации 6. Тестирование 6.1. Модульные тесты • Тесты парсинга для каждого сайта • Тесты обработки данных • Тесты экспорта в Excel 6.2. Интеграционные тесты • Полный цикл сбора данных • Отправка в тестовую Telegram группу 7. Сроки и этапы Этап 1: Базовая функциональность (7 дней) • Парсинг одного тестового сайта • Экспорт в Excel • Базовая структура проекта Этап 2: Расширенный функциональность (5 дней) • Поддержка всех целевых сайтов • Планировщик задач • Интеграция с Telegram Этап 3: Тестирование и доработки (3 дня) • Тестирование на различных сценариях • Оптимизация производительности • Документация Общий срок: 15 рабочих дней 8. Критерии приемки • Скрипт успешно собирает данные со всех указанных URL • Данные корректно экспортируются в Excel-файл • Файл отправляется в указанную Telegram группу • Планировщик работает согласно настройкам • Обработка ошибок реализована корректно • Предоставлена полная документация • Написаны тесты для основных функций ----- С уважением, Евгений.