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("Не удалось получить данные об игроках.")
Back to list