競馬キュレーションサイトを作るよ!#3

前回、開催レース情報と対象記事について調べ、どこから何のデータを取得するか決めました。
が、JRAのサイトをよくよく調べてみると、出走馬が公開されるのは金曜だと分かりました。
競馬メディアは1週間以上前から記事を出しています。
G1などの注目レースもっと前の2週間前からです。
こちらとしてもできるだけ早く開催レース情報を取得しておきたい。

というわけで、開催レース情報はJRAから取得するのをやめ、netkeiba.comから取ることにします。
なかなかプログラミングできませんが、実装を大きくやり直したくないので、要件定義に時間をかけるのは仕方ないですね。

スケジュール
1. 各メディアを調査←まだここ
2. システム構成を決める
3. プロトタイプ作成
4. 実装
5. テスト
6. 公開

開催日取得

netkeiba.comの「レース一覧」では今週と先週のレースが表示されます。
https://race.netkeiba.com/?pid=race_list

2019年7月2日現在、火曜日なので特別レースだけが表示されています。
水曜の夕方以降は12レースすべて表示されるようになります。

日付のリンクは以下のようになっています。

https://race.netkeiba.com/?pid=race_list&id=p0629
https://race.netkeiba.com/?pid=race_list&id=p0630
https://race.netkeiba.com/?pid=race_list&id=c0706
https://race.netkeiba.com/?pid=race_list&id=c0707

URLパラメタのidで対象の日付を指定できます。
ゼロ詰め2桁の月日と。
日付の前の「p」や「c」は、過去(past)と今週(current)を表しているのでしょう。
ちなみにG1が翌週にある場合、「n0526」のようになります。
つまり「c」と「n」のリンクのみクローリングしてやればいいわけです。

「レース一覧」は日曜の夕方に更新されます。
クローリングするタイミングを合わせてやれば、特別レースを先取りしてやることができます。

開催日は div.DateList_Box の中の dt タグから取得。

開催競馬場は、dl.race_top_hold_list の p.kaisaidata タグ。
複数会場あるため、うまいことループを回して取ってやる必要があります。

各レース情報はちょっと複雑で、dl.race_top_hold_list > dd > ul > li。

出走表取得

福島11R 七夕賞
https://race.netkeiba.com/?pid=race_old&id=c201903020411

現在、2019年7月2日火曜日なのでまだ枠と騎手が決まっていません。
木曜にどの馬がどのレースに出るのかが決まり、金曜に枠が決められます。
つまり出走馬が減ったり、枠というデータが追加されたりするわけです。
このへん考慮してDBにデータを持つ必要があります。
出馬表で欲しいデータは、

・枠(決定後)
・馬
・騎手

このくらいでいいでしょう。
馬と騎手のデータをどう定義するのかは考えものですが、プロトタイプを作るときにでも決めることにします。

まとめ

今回で開催レース情報と出馬表データ取得の目星が付きました。
実際のところ、要件定義としてはかなり甘いのですが、趣味で個人的にやってるだけなので、まあ良しとしときます。
次回こそシステム構成を。


この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

note.user.nickname || note.user.urlname

絶対に世のため人のためにはせず、くだらないことに使わせて頂きます。

Vielen Dank

Z80A

見た目は大人、中身はZ80Aくらい。 職業:インチキプログラマ

競馬キュレーションサイトを作るよ!

Laravelを使って競馬情報収集システムを構築します。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。