Общее описание проекта

Требуется разработать парсер, который собирает структурированные данные с указанного сайта по заданному шаблону (подробности - в блок-схеме). Управление, мониторинг и ввод данных для авторизации производятся через Telegram-бота. Результаты сохраняются в Google Sheets. Парсер обязательно должен поддерживать многопоточность.

Ключевые требования и функционал

  1. Пользовательский интерфейс (TG Bot)
    • Запуск парсинга - специальная команда/кнопка в чате.
    • Ввод логина и пароля для авторизации на сайте через сообщения пользователю.
    • Вывод статусов задач для каждого логина (В активной работе :spiral_notepad:, Ошибка входа ❌, Выполнено ✔️).
    • Обработка сценариев с разными логинами: две-три параллельные задачи с корректными/некорректными данными для проверки.
    • Получение отчетов в чат (успех/ошибка, общее количество собранных данных).
  2. Где хранятся результаты
    • Данные должны выгружаться в API Google Sheets.
    • Структура и формат выгрузки указываются отдельно (шаблон предоставлен).
  3. Многопоточность (обязательно).
    • Парсер должен САМОСТОЯТЕЛЬНО создавать несколько IO-bound задач для разных логинов.
    • Пример работы: последовательно запускаются 3 потока, каждый обрабатывает одного респондента. Асинхронность не заменяет многопоточность.
  4. Логика парсинга (полная оптимизация)
    • Первоё действие - войти на сайт используя переданные данные (проверяется успешность входа).
    • Пройти по указанной цепочке страниц / API.
    • Извлечь поля по шаблону, который даётся нотацией (блок-схема).
    • По завершению шага - записать данные во временную структуру, при падении задачи не терять собранные куски.
    • Бот чётко отличает собранные данные от не собранных, пандус/логи учтён.
  5. Техническая часть/путь решения
    • Язык разработки - Python, версия не старше 3.10.
    • Для парсинга использовать связку (asyncio и requests | aiohttp | httpx). Для входа используется библиотека re/база html блоков.
    • Логирование: через logging, с хранением в файлах и на конце - короткий лог выводим в ТГ.
    • Основа - гибкий архитектурный код, для чата с заказчиком (поток-работник сут руж 1 бот 1 пользователь).
    • Google-таблицы - api `gspread` (или прямые запросы). Требуется учитывать ограничение частоты запросов/ред, делаем пакетную загрузку.
    • Связь телеграм - aiogram 3 (любой переходник). Ловить флаги через call на запуск.
  6. Иная документация
    • Предоставляется сервисная документация: описание 2-х уровней парсинг и поток (архитектура + краткая Process map установки/запуска).

Тестовые требования к PvE

Сделать финальный запуск (демонстрация работоспособности). Создаются 2 логина один явно не верный. Бот отражают параллели. (Cбор заказчика работает на его же геозиции).

Разработка VK бота для сообщества с функциями рассылки и розыгрыша

Требуется создать бота для сообщества ВКонтакте, который будет автоматизировать рассылки (по гео и сегментам) и проводить розыгрыши (сбор участников из постов и рандомный выбор победителей). Ключевая задача - адаптация концепции функционального Telegram бота под специфику VK API.