Cześć w programowaniu jestem laikiem kiedyś robiłem jakiś darmowy kurs C++ i to tyle może jakieś tam podstawy podstaw znam wiem jak to działa itp.
Chciałbym stworzyć program który będzie pobierał dane wartości ze strony flashscore i wrzucał je do mojego pliku w excelu w odpowiednie pola ,chciałbym aby działa tak że wprowadzam link danego meczu np.: https://www.flashscore.pl/mecz/tYWFHDyI/#/szczegoly-meczu i program wchodzi najpierw w tabela > U siebie> (znajduje po nazwie druzyne gospodarza i przenosi do excel nastepujace dane: ilosc meczy, pkt rzucone, pkt stracone) potem wchodzi w tabela > na wyjeździe (znajduje po nazwe druzyne gosci i wprowadza te same dane do excela ) jako że sie nie znam na programowaniu to napisałem na chatgpt o jakis zarys kodu i wywalił coś takiego:
import requests
from bs4 import BeautifulSoup
import pandas as pd
# Funkcja pobierająca dane z tabeli dla danej drużyny
def get_team_stats(url, team_name, section_class):
response = requests.get(url)
response.raise_for_status() # Upewnij się, że żądanie się powiodło
soup = BeautifulSoup(response.content, 'html.parser')
# Znajdź odpowiednią sekcję (np. "U siebie" lub "Na wyjeździe")
table_section = soup.find('div', {'class': section_class}) # Dopasowanie klasy sekcji
if not table_section:
raise ValueError(f"Sekcja '{section_class}' nie została znaleziona na stronie.")
# Znajdź wiersz dla drużyny
team_row = None
for row in table_section.find_all('tr'):
if team_name in row.text:
team_row = row
break
if not team_row:
raise ValueError(f"Drużyna '{team_name}' nie została znaleziona w sekcji '{section_class}'.")
# Pobierz dane statystyczne
stats = team_row.find_all('td')
matches = int(stats[1].text.strip())
points_scored = int(stats[2].text.strip())
points_conceded = int(stats[3].text.strip())
return matches, points_scored, points_conceded
# Funkcja główna
def process_game(url, excel_file):
response = requests.get(url)
response.raise_for_status()
soup = BeautifulSoup(response.content, 'html.parser')
# Znajdź drużyny gospodarzy i gości
home_team_element = soup.find('a', {'class': 'participant__participantName participant__overflow'}) # Dopasuj klasę
if not home_team_element:
raise ValueError("Nie znaleziono drużyny gospodarzy.")
home_team = home_team_element.text.strip()
away_team_element = soup.find('a', {'class': 'participant__participantName'}) # Dopasuj klasę
if not away_team_element:
raise ValueError("Nie znaleziono drużyny gości.")
away_team = away_team_element.text.strip()
# Pobierz dane statystyczne
home_stats = get_team_stats(url, home_team, 'u-siebie') # Dopasuj nazwę sekcji
away_stats = get_team_stats(url, away_team, 'na-wyjezdzie') # Dopasuj nazwę sekcji
# Wprowadź dane do pliku Excel
df = pd.read_excel(excel_file)
# Przypisanie danych do odpowiednich kolumn
df.loc[0, 'Drużyna'] = home_team
df.loc[0, 'Mecze'] = home_stats[0]
df.loc[0, 'Punkty rzucone'] = home_stats[1]
df.loc[0, 'Punkty stracone'] = home_stats[2]
df.loc[1, 'Drużyna'] = away_team
df.loc[1, 'Mecze'] = away_stats[0]
df.loc[1, 'Punkty rzucone'] = away_stats[1]
df.loc[1, 'Punkty stracone'] = away_stats[2]
# Zapis do pliku Excel
df.to_excel(excel_file, index=False)
print("Dane zostały zapisane do pliku Excel.")
# Przykład użycia
url = "https://www.flashscore.pl/mecz/tYWFHDyI/#/szczegoly-meczu"
excel_file = "statystyki.xlsx"
process_game(url, excel_file)
Nawet nie znając sie na tym myśle że jest tu dużo do zmiany bład już wywala w linijce znajdz druzyne gospodarzy : home_team_element = soup.find('a', {'class': 'participant__participantName participant__overflow'}) czyli ta formuła jest błędna na początek jaką formuła musze ją zastapić aby dobrze dobrze znajdwywała nazwe drużyn dodam że w kodzie strony wyglada to tak : a href="/druzyna/bilbao/GWZ15Sne/" class="participant__participantName participant__overflow " target="_blank">Bilbao</a>
Gdzie nazwa drużyny kryje się po target="_blank"> (czyli bilbao)