(競馬予想AI)SPAT4による地方競馬投票ツールの作り方(単勝のみ、お知らせ対応済ver)

SPAT4による購入方法をまとめました

#NARに投票するモジュール
import os
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException, NoSuchElementException
from time import sleep
from datetime import datetime, timedelta
from webdriver_manager.chrome import ChromeDriverManager

from report_line import send_line_return # type: ignore
from keiba_prediction import race_prediction_last_min  # type: ignore


username = "" # ここには自分の加入者番号を入力すること!
password = "" # ここには自分の利用者IDを入力すること!

race_location_mapping = {
    '01': '札幌', '02': '函館', '03': '福島', '04': '新潟', '05': '東京',
    '06': '中山', '07': '中京', '08': '京都', '09': '阪神', '10': '小倉',
    '65': '帯広', '30': '門別', '35': '盛岡', '36': '水沢', '42': '浦和',
    '43': '船橋', '44': '大井', '45': '川崎', '46': '金沢', '47': '笠松',
    '48': '名古屋', '50': '園田', '51': '姫路', '54': '高知', '55': '佐賀'
}
# seleniumの待機時間[sec]
wait_sec = 2

def login_spat4():
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("--headless")  # ヘッドレスモードで実行
    chrome_options.add_argument("--no-sandbox")  # OSセキュリティモデルをバイパス
    chrome_options.add_argument("--disable-dev-shm-usage")  # リソース制限の問題を回避
    
    # ChromeDriverのパスを指定
    driver_path = ChromeDriverManager().install()
    if not driver_path.endswith("chromedriver.exe"):
        driver_dir = os.path.dirname(driver_path)
        driver_path = os.path.join(driver_dir, "chromedriver.exe")

    # ChromeServiceを作成し、ChromeDriverのパスを指定
    chrome_service = webdriver.ChromeService(executable_path=driver_path)

    # ChromeOptionsを作成
    chrome_options = webdriver.ChromeOptions()

    # ChromeDriverを作成
    driver = webdriver.Chrome(service=chrome_service, options=chrome_options)

    try:
        # ウェブサイトにアクセス
        driver.get("https://www.spat4.jp/keiba/pc")
        # サイトが完全に読み込まれるのを待つために適切な時間を設定
        sleep(1)

        # ログイン情報を入力
        username_input = driver.find_element(By.ID, "MEMBERNUMR")
        password_input = driver.find_element(By.ID, "MEMBERIDR")
        username_input.send_keys(username)
        password_input.send_keys(password)

        # チェックボックスにチェックを入れる
        checkbox = driver.find_element(By.CLASS_NAME, "check")
        checkbox.click()

        # ログインボタンをクリック
        login_button = driver.find_element(By.XPATH, "//span[@class='btn']/div[text()='ログイン']")
        login_button.click()

        # サイトが完全に読み込まれるのを待つために適切な時間を設定
        sleep(1)
        # ログインが成功した場合、WebDriverを返す
        return driver


    except Exception as e:
        print(f"ログインエラー: {e}")
        return None

def get_race_location(race_location_code):
    return race_location_mapping.get(race_location_code, 'Unknown Location')

# DataFrameを文字列形式に変換する関数
def df_to_string(df):
    return df.to_string(index=False)

これ以降に賭けるロジックを入れます

ここから先は

10,170字 / 1画像
この記事のみ ¥ 300

この記事が気に入ったらサポートをしてみませんか?