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)
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
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.
https://qiita.com/Mokutan/items/89c871eac16b8142b5b2 https://qiita.com/ftoyoda/items/fe3e2fe9e962e01ac421
Recommended Posts