Prédisez les courses de chevaux avec l'apprentissage automatique et visez un taux de récupération de 100%.
Récupération de tous les résultats de la course 2019 sur netkeiba.com Les données avec une balise table peuvent être récupérées en une seule ligne en utilisant pandas read_html, ce qui est pratique.
pd.read_html("https://db.netkeiba.com/race/201902010101")[0]
Puisque race_id est assigné à chaque course sur netkeiba.com, si vous entrez une liste de race_id, créez une fonction qui gratte chaque résultat de course ensemble et le renvoie dans un type de dictionnaire.
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
Cette fois, je veux gratter les résultats de toutes les courses en 2019, donc je vais faire une liste de tous les race_ids en 2019.
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)
Après le scraping, convertissez-le en type pandas DataFrame et enregistrez-le en tant que fichier pickle.
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')
Article suivant utilise BeautifulSoup pour récupérer des données détaillées telles que les dates des courses et la météo! De plus, nous expliquons en détail dans la vidéo! Analyse des données / apprentissage automatique à partir de la prédiction des courses de chevaux
Recommended Posts