Récupération des données sur les courses de chevaux au Colaboratory

Gratter les données de courses de chevaux dans Colaboratory

Si vous souhaitez extraire des données de courses de chevaux et devenir un apprentissage automatique, Colaboratory est pratique, donc Prenez note du code pour gratter la course de chevaux dans le Colaboratoire.

(Veuillez noter que vous ne pourrez peut-être pas gratter en raison de changements html.2020.8 / 30 Opération confirmée)

Code ci-dessous

sample.ipynb


#Installez le chrome et le sélénium
#「!Collez chaque marque dans la cellule de code Colaboratory.
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
!pip install selenium

#Importer la bibliothèque BeautifulSoup
from bs4 import BeautifulSoup
import requests
import re
import pandas as pd
race_date ="2020"
race_course_num="06"
race_info ="03"
race_count ="05"
race_no="01"
url = "https://race.netkeiba.com/race/result.html?race_id="+race_date+race_course_num+race_info+race_count+race_no+"&rf=race_list"

#Récupérez les données de l'URL correspondante au format HTML
race_html=requests.get(url)
race_html.encoding = race_html.apparent_encoding  
race_soup=BeautifulSoup(race_html.text,'html.parser')
#Supprimer les chaînes inutiles et stocker dans la liste
def make_data(data):
    data = re.sub(r"\n","",str(data))
    data = re.sub(r" ","",str(data))
    data = re.sub(r"</td>","'",str(data))
    data = re.sub(r"<[^>]*?>","",str(data))
    data = re.sub(r"\[","",str(data))
    return data
#Obtenez et enregistrez uniquement la table de course
HorseList = race_soup.find_all("tr",class_="HorseList")

#Mise en forme de la table de course
#Nombre de lignes dans le tableau=15("Ordre d'arrivée,Cadre,Numéro de cheval,Nom du cheval,Âge sexuel,Poids,Cavalier,temps,Différence,Populaire,Gagnez des chances,Après 3F,Ordre de passage de coin,stable,Poids du cheval(Augmentation Diminution))
col = ["Ordre d'arrivée","Cadre","Numéro de cheval","Nom du cheval","Âge sexuel","Poids","Cavalier","temps","Différence","Populaire","Gagnez des chances","Après 3F","Ordre de passage de coin","stable","Poids du cheval(Augmentation Diminution)","Nombre de coureurs"]

#Comptez le nombre de coureurs
uma_num = len(HorseList)

df_temp = pd.DataFrame(map(make_data,HorseList),columns=["temp"])
df = df_temp["temp"].str.split("'", expand=True)
df.columns= col
df["Nombre de coureurs"] = uma_num 
df

スクリーンショット 2020-08-30 19.24.04.png

finalement

Après cela, vous pouvez gratter beaucoup en changeant la date, etc. Le laboratoire, qui ne nécessite pas de construction d'environnement, est pratique après tout.

référence

https://qiita.com/Mokutan/items/89c871eac16b8142b5b2 https://qiita.com/ftoyoda/items/fe3e2fe9e962e01ac421

Recommended Posts

Récupération des données sur les courses de chevaux au Colaboratory
Flux de raclage des données de courses de chevaux
Site de courses de chevaux Web scraping avec Python
Comment récupérer des données de courses de chevaux avec Beautiful Soup
J'ai essayé de ramper et de gratter le site de courses de chevaux Partie 2
Obtenez les performances passées des coureurs du site de courses de chevaux de grattage Python