Neulich wurde der Zeitplan für die Meiji Yasuda Seimei J League 2020 bekannt gegeben. (Veröffentlichung) Diese Version enthält J1-, J2- und J3-Ligadaten im PDF-Format. Darüber hinaus bietet die J League verschiedene Daten an verschiedenen Standorten basierend auf der Spielachse, der Teamachse und der Spielerachse.
In diesem Beitrag wird "read_html" verwendet, das von "pandas" bereitgestellt wird, um die Seite anzuzeigen, die über das Menü "Zeitplan / Ergebnisse" auf der obigen Website abgerufen wurde, anstatt das PDF-Format zu kratzen. Leicht zu haben.
https://data.j-league.or.jp/SFMS01/search?competition_years=2020&competition_frame_ids=1&competition_ids=477&tv_relay_station_name=
game_schedule.py
# cording:uft-8
import pandas as pd
yyyy = 2020
url = 'https://data.j-league.or.jp/SFMS01/search?'
category = {'1': 477, '2': 478, '3': 479}
schedule = pd.DataFrame(index=None, columns=['Jahr', 'Turnier', 'Sektion', 'Spieltag', 'K/O Zeit', 'Zuhause', 'Ergebnis', 'Weg', 'Stadion', 'Besucherzahl', 'Internet- / Fernsehsendung'])
Erstellen Sie J1-, J2-, J3-Kategorien und jährliche IDs im DIC-Format. Erstellen Sie einen leeren Datenrahmen.
game_schedule.py
for key, value in category.items():
para = 'competition_years=' + str(yyyy)
para1 = '&competition_frame_ids=' + str(key)
para2 = '&competition_ids=' + str(value)
para3 = '&tv_relay_station_name='
full_url = url + para + para1 + para2 + para3
# print(full_url)
df = pd.read_html(full_url, attrs={'class': 'table-base00 search-table'}, skiprows=0)
schedule = pd.concat([schedule, df[0]], sort=False)
Der Punkt ist pd.read_html (full_url, attrs = {'class': 'table-base00 search-table'} ...
, der die Ziel-URL und die Attribute von <table>
angibt.
Kombinieren Sie die abgerufenen in den "Zeitplan".
game_schedule.py
#Wenn Sie NaN ersetzen möchten
# schedule = schedule.fillna({'KO Zeit': '● Unentschlossen ●', 'Besucher':0})
schedule.to_csv('./csv/Game_Schedule_' + str(yyyy) + '.csv', index=False, sep=',')
Speichern Sie im CSV-Format im angegebenen Ordner.
Recommended Posts