大学院生のひとりごと

興味あること:機械学習,量子コンピュータ,競馬 (なるべく正しいことを書く気ではいますが,記事の正確さは保証しません)

スクレイピングお勉強日記3

ちょっと最近忙しくて,スクレイピング周りの勉強する暇がなかったのでしばらくぶりになってしまった.

netkeiba.comの一つのページから着順とかその他諸々の情報を引っ張ってきてcsv形式で書き出すものを作った

とりあえず2017年の宝塚記念のデータを引っ張ってみた.

このページ

db.netkeiba.com

の表からデータを引っ張るプログラム

import csv
from urllib.request import urlopen
from bs4 import BeautifulSoup

html = urlopen("http://db.netkeiba.com/race/201709030811/")
bsObj = BeautifulSoup(html,"lxml")

table = bsObj.findAll("table",{"class":"race_table_01 nk_tb_common"})[0]
rows = table.findAll("tr")

csvFile = open("../files/takarazuka2017.csv",'wt',newline='',encoding='utf-8')
writer = csv.writer(csvFile)
try:
    for row in rows:
        csvRow = []
        for cell in row.findAll(['td','th']):
            csvRow.append(cell.get_text())
            
        #なぜか改行コードが入ってたから改行コードを消す
        for x in range(len(csvRow)):
            csvRow[x]=csvRow[x].replace('\n','')
            
        writer.writerow(csvRow)
finally:csvFile.close()

で結果がこちら

着順,枠番,馬番,馬名,性齢,斤量,騎手,タイム,着差,タイム指数,通過,上り,単勝,人気,馬体重,調教タイム,厩舎コメント,備考,調教師,馬主,賞金(万円)
1,8,11,サトノクラウン,牡5,58,M.デム,2:11.4,,**,7-6-6-6,35.4,9.0,3,488(+10),,,,[東]堀宣行,里見治,"15,231.0"
2,2,2,ゴールドアクター,牡6,58,横山典弘,2:11.5,3/4,**,6-6-6-9,35.4,12.7,5,488(-6),,,,[東]中川公成,居城寿与,"6,066.0"
3,7,8,ミッキークイーン,牝5,56,浜中俊,2:11.7,1.1/2,**,9-9-9-9,35.5,10.4,4,448(+8),,,,[西]池江泰寿,野田みづき,"3,833.0"
4,6,6,シャケトラ,牡4,58,ルメール,2:12.0,1.3/4,**,2-2-2-2,36.2,8.5,2,510(+2),,,,[西]角居勝彦,金子真人ホールディングス,"2,300.0"
5,6,7,レインボーライン,牡4,58,岩田康誠,2:12.3,1.3/4,**,10-9-10-6,36.3,23.8,7,444(+2),,,,[西]浅見秀一,三田昌宏,"1,500.0"
6,1,1,ミッキーロケット,牡4,58,和田竜二,2:12.3,アタマ,**,3-4-4-6,36.4,32.5,8,478(-2),,,,[西]音無秀孝,野田みづき,
7,3,3,スピリッツミノル,牡5,58,幸英明,2:12.6,1.3/4,**,7-6-6-5,36.7,110.5,9,506(+10),,,,[西]本田優,吉岡實,
8,5,5,シュヴァルグラン,牡5,58,福永祐一,2:12.6,ハナ,**,1-1-1-1,36.9,12.7,6,470(+2),,,,[西]友道康夫,佐々木主浩,
9,8,10,キタサンブラック,牡5,58,武豊,2:12.7,1/2,**,3-3-2-2,36.9,1.4,1,542(+6),,,,[西]清水久詞,大野商事,
10,4,4,クラリティシチー,牡6,58,松山弘平,2:12.9,1.1/4,**,3-4-4-2,37.1,188.5,11,492(-6),,,,[東]上原博之,友駿ホースクラブ,
11,7,9,ヒットザターゲット,牡9,58,川田将雅,2:13.2,1.3/4,**,10-11-11-11,36.4,167.1,10,518(+4),,,,[西]加藤敬二,前田晋二,

うん,ちゃんと抜き出せてるね.

とりあえず第一歩という感じですね.