目的
競馬を統計的に予想したい!
何回かに分けて目的を達成してく予定
1. レース結果のURLを取得 <- 今回はこれが目的
2. 1のURLからレース結果をスクレイピング
3. 2のデータから統計モデルを作る
4. 予想してみる
環境
- Raspberry Pi 3 ModelB1
- Python v3.5.3
作業メモ
事前準備
作業用の環境を準備して、必要なパッケージをインストールする
- 仮想環境の準備
$ python3 -m venv tmp
$ source tmp/bin/activate
以下のように先頭に(tmp)
が付けばOK
(tmp) pi@raspberrypi:### $
- beautifulsoup4のインストール
$ pip3 install beautifulsoup4
(略)
Successfully installed beautifulsoup4-4.6.0
レース結果のURLを取得
以下のサイトからレース結果が載っているURLを取得するスクリプトを作成する
http://www.netkeiba.com/
参考サイト
Pythonはかなりの初心者のため、色々なサイトを参考にさせていただいた
コマンドライン引数の取得
https://www.python-izm.com/basic/command_line_arguments/
Noneの判断
https://www.sejuku.net/blog/50205
sleepの追加
https://qiita.com/Azunyan1111/items/9b3d16428d2bcc7c9406
docstringの追加
http://jutememo.blogspot.com/2008/08/python_28.html
- スクリプトを作成する
細かいところの説明は省くが、コードを以下に公開してみる2
https://github.com/marumen/git_netkeiba_scraping
上記のREADMEを読んでいただければ使い方はわかると思うが、ざっくり書くと以下のように使用する
$ python html_scraping.py [year]
[year]
から今年までのレース結果URLをurl_list.txt
というファイルへ出力するスクリプトを作成した
例えば、[year]
を2016
とすると、2016年から今年(2018年)までのレース結果のURLが取得できる
-
注意点
- 連続アクセスにならないように、一定間隔でsleep(5sほど)を持たせている。そのため、処理は正直遅いと思われる
- 数年分(5年分)の取得は動作確認済みだが、それ以上長い期間は動作未確認。ただし個人として実使用でそこまで長い期間のデータを取得する必要性がないため、これで公開している。
まとめ
今回の目的は達成!
競馬を統計的に予想したい!
何回かに分けて目的を達成してく予定
1. レース結果のURLを取得 <- 今回はこれが目的
次回は以下を実現する
2. 1のURLからレース結果をスクレイピング