Этот проект представляет собой асинхронный парсер данных игроков с сайта. Он включает в себя функции для входа в систему, получения списка игроков, обработки профилей и генерации HTML-отчета.
- Асинхронный сбор данных о профилях игроков.
- Автоматическая повторная попытка при возникновении ошибок сетевого запроса.
- Кэширование данных для предотвращения избыточных запросов.
- Генерация HTML-отчета с возможностью фильтрации и поиска.
- Логирование событий и ошибок в файл.
- Сохранение неполных данных для дальнейшей обработки.
-
Установите зависимости:
pip install -r requirements.txt
-
Создайте файл
.env
и укажите в нем учетные данные:USERNAME=ваш_логин PASSWORD=ваш_пароль
-
Запустите скрипт с помощью Python:
python main.py --offset 0
-
Доступные аргументы командной строки:
--offset
- С какого номера начинать обработку списка игроков (по умолчанию 0).
login(session, username, password)
: Функция для авторизации пользователя.fetch_players(session, offset)
: Получает список игроков с заданного офсета.parse_player_profile(html_content)
: Извлекает информацию о профиле игрока из HTML-страницы.process_players(session, players, cache, semaphore, progress_bar)
: Обрабатывает список игроков асинхронно.generate_html_report(cache, previous_cache)
: Генерирует отчет в формате HTML.validate_player_data(data)
: Проверяет наличие ключевых полей и сохраняет данные даже при их частичном отсутствии.
Все события записываются в файл app.log
. Формат сообщений:
2025-01-24 12:00:00 - INFO - Успешный вход в систему!
2025-01-24 12:05:00 - ERROR - Ошибка при загрузке списка игроков: ClientError
2025-01-24 12:10:00 - WARNING - Невалидные данные для игрока username123, сохранены частично.
.
├── app.log
├── main.py
├── player_data.json
├── players_report.html
├── requirements.txt
├── .env
└── README.md
- Python 3.9+
- aiohttp
- asyncio
- BeautifulSoup
- dotenv
- logging
- tenacity
- tqdm
- json
- argparse
Проект разработан командой энтузиастов для мониторинга игрового сервера.