https://github.com/slidrusforeal/smpparser
Парсер
https://github.com/slidrusforeal/smpparser
beutifulsoup minecraft parser python python3
Last synced: over 1 year ago
JSON representation
Парсер
- Host: GitHub
- URL: https://github.com/slidrusforeal/smpparser
- Owner: SlidrusForeal
- License: mit
- Created: 2025-01-24T00:06:56.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-01T10:46:05.000Z (over 1 year ago)
- Last Synced: 2025-03-01T11:29:16.440Z (over 1 year ago)
- Topics: beutifulsoup, minecraft, parser, python, python3
- Language: Python
- Homepage:
- Size: 226 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# README
## Описание проекта
Этот проект представляет собой асинхронный парсер данных игроков с сайта. Он включает в себя функции для входа в систему, получения списка игроков, обработки профилей и генерации HTML-отчета.
## Возможности
- Асинхронный сбор данных о профилях игроков.
- Автоматическая повторная попытка при возникновении ошибок сетевого запроса.
- Кэширование данных для предотвращения избыточных запросов.
- Генерация HTML-отчета с возможностью фильтрации и поиска.
- Логирование событий и ошибок в файл.
- Сохранение неполных данных для дальнейшей обработки.
## Установка
1. Установите зависимости:
```bash
pip install -r requirements.txt
```
2. Создайте файл `.env` и укажите в нем учетные данные:
```plaintext
USERNAME=ваш_логин
PASSWORD=ваш_пароль
```
## Использование
1. Запустите скрипт с помощью Python:
```bash
python main.py --offset 0
```
2. Доступные аргументы командной строки:
- `--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`. Формат сообщений:
```plaintext
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
## Авторы
Проект разработан командой энтузиастов для мониторинга игрового сервера.