[PYTHON] Ich habe das Schaben mit Selen gelernt, um ein Vorhersagemodell für Pferderennen zu erstellen.

Einführung

Ich mache vom letzten Mal an ein Vorhersageprogramm mit Pferderenndaten von netkeiba.com. Ich habe den Inhalt des Scrapings durch Erstellen eines Vorhersageprogramms gelernt, daher werde ich es in einer Erinnerung zusammenfassen.

Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen https://qiita.com/Fumio-eisan/items/1c1c429746a3a0add055

In diesem Video finden Sie das Vorhersageprogramm für Pferderennen. Es wird sehr sorgfältig erklärt und selbst Anfänger können es vollständig verstehen.

Datenanalyse / maschinelles Lernen beginnend mit der Vorhersage von Pferderennen https://www.youtube.com/channel/UCDzwXAWu1zIfJuPTTZyWthw

Verschrotten von in Javascript geschriebenen Stellen (mit Selenimum)

Ich habe das letzte Mal zusammengefasst, dass Sie "Pandas" verwenden können, um Informationen wie Rennplan, Pferdename und Jockey von "html" zu erhalten. Dies reicht möglicherweise nicht aus. Für den in "Javascript" beschriebenen Teil muss man sich etwas Zeit nehmen, um zu kratzen.

Was ist Selen?

"Selen" ist ein Framework zur Automatisierung von Webbrowser-Vorgängen. Es scheint, dass es mit "Chrome", "FireFox", "IE" usw. verwendet werden kann. Dieses Mal werde ich "Chrome" verwenden.

http://chromedriver.chromium.org/downloads

image.png

Laden Sie hier Ihre "Chrome" -Version von "Selen" herunter.

from selenium.webdriver import Chrome, ChromeOptions
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

Öffne URL

So öffnen Sie einfach die URL.


options= ChromeOptions()
driver = Chrome(executable_path=r'(chromedriver.exe)Bitte geben Sie den Pfad von an',options=options)
driver.get(url)

Hier ist der "Pfad" des "Choromtreibers" enthalten. Wenn Sie in den Systemumgebungseinstellungen den Pfad des Choromtreibers angeben, müssen Sie anscheinend nicht in dieses Programm schreiben, aber selbst wenn Sie es festgelegt haben, hat es nicht funktioniert. Daher gebe ich absichtlich "ausführbarer_Pfad" an.

Klassendefinition für die Erfassung von Eintragsinformationen

Im Folgenden definieren wir eine Klasse, die Eintragsinformationen abkratzt. Ich werde es in den Datenrahmen von "Pandas" setzen.


from tqdm import tqdm_notebook as tqdm
import pandas as pd
import time

class ShutubaTable:
    def __init__(self):
        self.shutuba_table = pd.DataFrame()
    
    def scrape_shutuba_table(self, race_id_list):
        options= ChromeOptions()
        driver = Chrome(executable_path=r'C:\Users\lllni\Documents\Python\20200528_keiba\chromedriver_win32\chromedriver.exe',options=options)
        for race_id in tqdm(race_id_list):
            url = 'https://race.netkeiba.com/race/shutuba.html?race_id=' + race_id
            driver.get(url)
            elements = sample_driver.find_elements_by_class_name('HorseList')
            for element in elements:
                tds = element.find_elements_by_tag_name('td')
                row = []
                for td in tds:
                    row.append(td.text)
                    if td.get_attribute('class') in ['HorseInfo', 'Jockey']:
                        href = td.find_element_by_tag_name('a').get_attribute('href')
                        row.append(re.findall(r'\d+', href)[0])
                self.shutuba_table = self.shutuba_table.append(pd.Series(row, name=race_id))
        time.sleep(1)
        driver.close()

Als Punkt

  1. Die 'HorseList'-Klasse enthält die gewünschten Daten. Rufen Sie sie daher wie folgt ab.
elements = sample_driver.find_elements_by_class_name('HorseList')

image.png

  1. Extrahieren Sie Informationen wie Pferdenamen und Quoten für jedes "td" -Tag.
for element in elements:
  tds = element.find_elements_by_tag_name('td')
  row = []
  for td in tds:
     row.append(td.text)
    self.shutuba_table = self.shutuba_table.append(pd.Series(row, name=race_id))

image.png

Durch Beschreiben jedes dieser "td" -Tags können auch die in "Javascript" beschriebenen Informationen abgerufen werden. Außerdem ist "Element" für jedes Pferd. Mit anderen Worten, jedes Mal, wenn sich das Pferd ändert, wird "row" leer und die Informationen des "td" -Tags können von Grund auf neu eingegeben werden.

Instanziieren und laden

st = ShutubaTable1()
sample_driver = Chrome(executable_path=r'C:\Users\lllni\Documents\Python\20200528_keiba\chromedriver_win32\chromedriver.exe',options=options)
sample_driver.get(url
st.scrape_shutuba_table(['202005030211'])#Rennen, das Sie erwarten möchten_ID eingeben
st.shutuba_table

Wenn die Renn-ID "netkeiba.com" lautet, wird die Nummer am Ende der URL der Renntabelle angegeben. Nehmen Sie daher nur die Nummer der gewünschten Renn-ID heraus und fügen Sie sie ein.

image.png

Ich konnte es sicher herausnehmen.

Am Ende

Ich habe ein anderes Verständnis von Schaben.

Recommended Posts

Ich habe das Schaben mit Selen gelernt, um ein Vorhersagemodell für Pferderennen zu erstellen.
Ein Anfänger des maschinellen Lernens versuchte, mit Python ein Vorhersagemodell für Pferderennen zu erstellen
Ich habe versucht, mit Pandas eine Pferderenn-Datenbank zu erstellen
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich habe versucht, den Pferderennplatz Teil 2 zu kriechen und abzukratzen
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe mit PyQt einen einfachen Texteditor erstellt
Ich habe mit LightGBM einen Code geschrieben, der die Wiederherstellungsrate von 100% bei der Vorhersage von Pferderennen überschreitet (Teil 2).
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe eine Web-API erstellt
Ich habe mir eine Möglichkeit ausgedacht, aus einem Foto ein 3D-Modell zu erstellen.
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Ich möchte Matplotlib zu einem dunklen Thema machen
Ich habe versucht, einen periodischen Prozess mit CentOS7, Selenium, Python und Chrome durchzuführen
Ich möchte einfach ein Rauschmodell erstellen
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe versucht, die 100-Yen-Lagerstätte von Rakuten-Pferderennen (Python / Selen) zu automatisieren.
Ich las "Wie man ein Hacking Lab macht"
Ich habe versucht, einen Übersetzungs-BOT zu erstellen, der mit Discord unter Verwendung von Googletrans funktioniert
Ich habe versucht, verschiedene Methoden für maschinelles Lernen (Vorhersagemodell) mithilfe von Scicit-Learn zu implementieren
Ich habe versucht, eine verdächtige Person mithilfe von Geolonia-Adressdaten schnell zu einem MAP zu machen
Ich habe mir eine Möglichkeit ausgedacht, aus einem Foto ein 3D-Modell zu erstellen. 0 Projektion in den 3D-Raum
Ich habe versucht, einen "verdammt großen Literaturkonverter" zu machen.
Ich habe versucht, ein Beispielmodell von Pytorch mit TorchServe zu hosten
Ich habe einen Code erstellt, um illustration2vec in ein Keras-Modell zu konvertieren
Ich bin auf MoviePy gestoßen, machen Sie sich also eine Notiz
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
So erstellen Sie ein Python-Paket mit VS Code
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Ich habe versucht, ein Konfigurationsdiagramm mit Diagrammen zu zeichnen
[Git] Ich habe versucht, anhand eines konkreten Beispiels zu verstehen, wie man Git Stash verwendet.
Ich habe versucht, mit Kendra, das bei re: Invent 2019 angekündigt wurde, sofort einen Befehl zum Durchsuchen der Dokumentensuche auszuführen
Ich habe versucht, mit OpenCV eine Bewegungserkennungsüberwachungskamera mit einer WEB-Kamera mit Raspberry Pi herzustellen
Ich habe versucht, mit PI Fu aus einem Bild ein 3D-Modell einer Person zu erstellen
Ich möchte einen Sprachwechsler mit Python und SPTK in Bezug auf eine berühmte Site erstellen
Wagen Sie es, das Formular ohne Selen auszufüllen
Ich habe versucht, das grundlegende Modell des wiederkehrenden neuronalen Netzwerks zu implementieren
[Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Ich möchte ein Klickmakro mit pyautogui (Wunsch) erstellen.
Ich habe versucht, ein Deep-Learning-Modell von TensorFlow mit TensorFlow Serving zu hosten
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Ich möchte ein Klickmakro mit pyautogui (Outlook) erstellen.
[Python Scraping] Ich habe versucht, Google Search Top10 mit Beautifulsoup & Selenium
Ich habe ein VGG16-Modell mit TensorFlow gemacht (unterwegs)
Ich habe versucht, [eine bestimmte Aufgabe] mit einem Raspeltorte zu automatisieren
Versuchen Sie, eine multimodale Verteilung mithilfe des EM-Algorithmus zu modellieren
[Einführung in Tensorflow] Verstehen Sie Tensorflow richtig und versuchen Sie, ein Modell zu erstellen
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Ich habe versucht, in einem tief erlernten Sprachmodell zu schreiben
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
Starten Sie mit Python zu Selen
Datenrabatfluss für Pferderennen
Web Scraping mit Selenium (Python)
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen