TrashNotes

2025-03-18 07:53:57
OpenArena view gamers

#!/usr/bin/env python3

import requests
from bs4 import BeautifulSoup

def get_player_data(url):
    """
    Извлекает данные об игроках с веб-страницы и возвращает их в виде списка строк.
    """
    try:
        response = requests.get(url)
        response.raise_for_status()  # Вызывает исключение для плохих кодов состояния (4xx или 5xx)
        soup = BeautifulSoup(response.content, 'html.parser')

        # Ищем все div элементы на странице
        divs = soup.find_all('div')

        player_data = []
        for div in divs:
            # Проверяем, содержит ли div информацию об игроке
            if div.get('id') in ['ping', 'frags', 'handle']:
                # Если да, то добавляем его текст в список
                player_data.append(div.text)

        # Обрабатываем список, чтобы сформировать строки в нужном формате
        formatted_data = []
        for i in range(0, len(player_data), 3):
            if i + 2 < len(player_data):  # Проверяем, чтобы не выйти за пределы списка
                formatted_data.append(f"{player_data[i]} {player_data[i+1]} {player_data[i+2]}")

        return formatted_data

    except requests.exceptions.RequestException as e:
        print(f"Ошибка при запросе: {e}")
        return None
    except Exception as e:
        print(f"Ошибка при обработке HTML: {e}")
        return None

if __name__ == "__main__":
    url = "http://dpmaster.deathmask.net/?game=openarena&;server=141.147.45.166:27960"
    player_data = get_player_data(url)

    if player_data:
        for player in player_data:
            # Выводим строку только если она содержит информацию об игроке
            if 'ms' in player and any(char.isdigit() for char in player):
                print(player)
    else:
        print("Не удалось получить данные об игроках.")
← Previous Next →
Back to list