karasuex54’s blog

プログラミングよりイリヤの方が好き

競馬のお勉強 その2

からすさんです。
前回はある日のレース一覧のurlを取得することに成功しました。
今回はあるレースのサイトに対して(次に示すよ)
db.netkeiba.com
上のサイトにあるテーブルを一つずつ取得していこうと思います。
f:id:karasuex54:20190312064244p:plain
取得したhtml内からtableを探し、その下から手に入れます。とりあえずコード書きましょう。
下に書いたのを置いとくね

import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

def get_uma():
    GET_UMA = 'https://db.netkeiba.com/race/201806030301/'
    options = Options()
    options.set_headless(True)
    driver = webdriver.Chrome(chrome_options=options)
    driver.get(GET_UMA)
    time.sleep(2)
    html = driver.page_source.encode('utf-8')
    soup = BeautifulSoup(html, 'html.parser')
    print(len(soup.table.tbody.find_all('tr')))
    for tr in soup.table.tbody.find_all('tr')[1:]:
        for td in tr.find_all('td'):
            print(td.text.replace(' ','').replace('\n',''),end=' ')
        print()

get_uma()

seleniumを使ったらhtml内の文字バケなおるしやるの簡単だったからやりました。seleniumを使わずにやったんだけどわからなかったから甘えたよ。
td内で出力したら改行されたり空白があってむかついたので消しました。目障りなものは消した方がいいです、後のDBへの格納のために...
実行したら

1 2 4 マローネメタリコ 牝3 54 二本柳壮 1:12.8  ** 10-9 36.3 47.5 10 486(0)    [東]萩原清 柏瀬金之介 500.0
2 5 10 クロスデスティニー 牝3 54 大野拓弥 1:13.1 1.3/4 ** 7-6 37.3 22.9 7 478(0)    [東]奥平雅士 キャロットファーム 200.0
3 5 9 アポロアミ 牝3 54 津村明秀 1:13.1 クビ ** 2-2 38.1 3.2 2 434(+2)    [東]矢野英一 アポロサラブレッドクラブ 130.0
4 2 3 クインズティガ 牝3 54 戸崎圭太 1:13.3 1 ** 4-3 38.0 3.0 1 458(+2)    [東]奥平雅士 亀田和弘 75.0
5 3 5 ベリンダ 牝3 54 三浦皇成 1:13.4 3/4 ** 9-10 37.3 19.3 6 434(+8)    [東]栗田徹 ノースヒルズ 50.0
6 6 12 ボナデア 牝3 54 宮崎北斗 1:13.5 クビ ** 3-3 38.3 48.3 11 488(-6)    [東]中川公成 山上和良
7 7 13 ラブヘネシー 牝3 51 横山武史 1:13.9 2.1/2 ** 4-3 38.6 42.4 9 432(-6)    [東]蛯名利弘 増田陽一
8 6 11 ダブルミリオン 牝3 54 柴田大知 1:13.9 クビ ** 7-8 38.1 10.5 4 462(0)    [東]小笠倫弘 サラブレッドクラブ・ラフィアン
9 8 16 ミヤビフィオーラ 牝3 54 松岡正海 1:14.1 1.1/2 ** 1-1 39.1 4.3 3 422(-2)    [東]中舘英二 村上義勝
10 1 1 パンテラ 牝3 54 北村宏司 1:14.3 1.1/4 ** 6-6 38.7 15.9 5 426(-4)    [東]田島俊明 佐藤範夫
11 4 8 プリプリクインダム 牝3 51 菊沢一樹 1:14.8 3 ** 11-11 38.1 181.9 13 466(-20)    [東]菊沢隆徳 澤田孝之
12 8 15 ヒミコ 牝3 54 吉田隼人 1:14.9 クビ ** 13-12 38.1 31.9 8 448(-2)    [東]武井亮 幅田京子
13 4 7 エスパージョー 牝3 54 丸山元気 1:15.4 3 ** 15-15 36.9 230.0 14 442(0)    [東]根本康広 泉一郎
14 1 2 フェアリーソング 牝3 54 ミナリク 1:15.7 2 ** 14-14 38.4 70.4 12 424(+2)    [東]加藤征弘 高橋正雄
15 3 6 ラブソングレイ 牝3 51 木幡育也 1:17.5 大 ** 11-12 40.8 378.8 16 402(0)    [東]菊川正達 キヨタケ牧場
16 7 14 グリーンライト 牝3 53 木幡初也 1:21.4 大 ** 16-16 42.0 236.3 15 464(0)    [東]加藤和宏 畠山牧場

成功しました。アムロ感激ぃ~