Qiita初投稿です。nekohanahime 別名、船橋海神と申します。好きな言語はZ80とN-BASICです。近頃はPythonをよく書きます。品詞分解(中世古文)や形態素解析(英語)が好きです。Juliusで毎時決まった時刻のBBC Worldニュースをテキストに落とし込んで解析したりしています。そのうち公開するかもしれません。
本稿の狙い
netkeiba-scraperというすばらしいスクリプトが公開されて3年半になります。動かせる方は苦もなく動かせているでしょうが、私このたび入れてみてそれなりに苦労もしました。そこで、2019年6月現在の「この環境で動く」「ここがポイント」「実際にどんな値が得られるか」を共有し、感謝と貢献をできればと思った次第です。この先の自分への備忘でもあります。
動作環境
Ubuntu
$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l
java
$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)
sbt:netkeiba-scraper
sbt:netkeiba-scraper> about
[info] This is sbt 1.2.8
[info] The current project is ProjectRef(uri("file:/neko/hanahime/netkeiba-scraper/"), "netkeiba-scraper") 0.1.0-SNAPSHOT
[info] The current project is built against Scala 2.12.7
[info] Available Plugins
[info] - sbt.ScriptedPlugin
[info] - sbt.plugins.CorePlugin
[info] - sbt.plugins.Giter8TemplatePlugin
[info] - sbt.plugins.IvyPlugin
[info] - sbt.plugins.JUnitXmlReportPlugin
[info] - sbt.plugins.JvmPlugin
[info] - sbt.plugins.SbtPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.12.7
ソースコード書き換え箇所
/home/neko/hanahime/netkeiba-scraper/src/main/scala/netkeiba-scraper/Main.scala
driver.get("https://regist.netkeiba.com/account/?pid=login")
- まず、全体にhttp -> httpsにする。
- さらに、ログインURLを上記のようにする。
- build.sbtを修正する。概ね、@guitar_charさんの記事の通りです。
有料会員情報の取得は可能か?
上記により可能です(もちろん、IDとパスワードの設定が必要です。Main.scala内に記述箇所があります)。
##大まかな処理所要時間
sbt "run collecturl"
157 s
Note: 初回処理で10年分を取得しました。現在は直近1年分を追加上書きする運用です。157秒というのは、その(直近1年分に対する)所要時間です。
sbt "run scrapehtml"
3.5 hours
Note: 同上
sbt "run extract"
1,092 s
sbt "run genfeature"
3.96 days
全体で丸4日間かかるイメージです。
計算結果の例
以下は、stockedgeさんのものをそのまま or アレンジしてヒアドキュメントで記述しただけです。
全馬単勝馬券均一購入回収率
$ ./01_allbet.sh
買い目数 回収率
---------- ----------------
495737 72.8213346996488
人気別回収率(穴馬バイアス)
$ ./02_popularity.sh
人気 買い目数 回収率
---------- ---------- ----------------
1 34660 77.3127524523948
2 34656 80.1061865189291
3 34660 81.1774379688402
4 34643 80.3440810553357
5 34628 81.6469331177082
6 34619 83.5269649614371
7 34528 81.6346153846154
8 34287 79.4823110800013
9 33669 74.5181027057531
10 32592 73.9936180657831
11 31041 72.21159112142
12 29117 68.3315588831268
13 26499 64.5028114268463
14 23656 49.0826851538721
15 20150 56.0466501240695
16 15695 33.0175215036636
17 3664 20.5594978165939
18 2973 13.3669693911874
まとめ
2019年6月現在、Ubuntu 18.04環境でnetkeiba-scraperがちゃんと動くんだよということを示しました。また、目安として、一連の処理の所要時間と、計算結果の例を示しました。スピード指数などの有料会員情報もきちんと取得できています。