Prognostizieren Sie Pferderennen mit maschinellem Lernen und streben Sie eine Wiederherstellungsrate von 100% an.
Scraping alle Rennergebnisse 2019 von netkeiba.com. Daten mit einem Tabellen-Tag können mithilfe von pandas read_html in einer Zeile abgekratzt werden, was praktisch ist.
pd.read_html("https://db.netkeiba.com/race/201902010101")[0]
Da Race_id jedem Rennen auf netkeiba.com zugewiesen ist, erstellen Sie bei Eingabe einer Liste von Race_id eine Funktion, die jedes Rennergebnis zusammenkratzt und in einem Wörterbuchtyp zurückgibt.
import pandas as pd
import time
from tqdm.notebook import tqdm
def scrape_race_results(race_id_list, pre_race_results={}):
race_results = pre_race_results
for race_id in tqdm(race_id_list):
if race_id in race_results.keys():
continue
try:
url = "https://db.netkeiba.com/race/" + race_id
race_results[race_id] = pd.read_html(url)[0]
time.sleep(1)
except IndexError:
continue
except:
break
return race_results
Dieses Mal möchte ich die Ergebnisse aller Rennen im Jahr 2019 kratzen, daher werde ich 2019 eine Liste aller Race_ids erstellen.
race_id_list = []
for place in range(1, 11, 1):
for kai in range(1, 6, 1):
for day in range(1, 9, 1):
for r in range(1, 13, 1):
race_id = (
"2019"
+ str(place).zfill(2)
+ str(kai).zfill(2)
+ str(day).zfill(2)
+ str(r).zfill(2)
)
race_id_list.append(race_id)
Konvertieren Sie es nach dem Scraping in den Pandas DataFrame-Typ und speichern Sie es als Pickle-Datei.
results = scrape_race_results(race_id_list)
for key in results:
results[key].index = [key] * len(results[key])
results = pd.concat([results[key] for key in results], sort=False)
results.to_pickle('results.pickle')
Nächster Artikel verwendet BeautifulSoup, um detaillierte Daten wie Renntermine und Wetter zu kratzen! Darüber hinaus erklären wir im Video ausführlich! Datenanalyse und maschinelles Lernen beginnend mit der Vorhersage von Pferderennen
Recommended Posts