データとバスケ

バスケをデータから楽しむブログです。

2020-21シーズンBリーグデータの四方山話

2020-21シーズンのBリーグが始まってから早1か月以上ですが、ようやくbleaguerに今シーズンのデータを入れました。後述するちょっとした問題はあるのですが、一応使える状態にはなっていると思います。bleaguer(ビーリーグアール)とは何ぞやという人は以下の記事を参照してください。

今シーズンからBリーグのページに変更があり、私を含めスクレイピング勢は多少の変更を求められることになりました。コロナ禍による生活の変化、家族のスケジュールの変更によるあれこれですっかり時間がかかってしまいましたが、とりえあずこのまま今シーズンのデータは取得できそうです。

この記事では今季の対応をしていく中で気が付いた、ちょっとした四方山話をしたいと思います。特に有用な話はないと思います。

スタッツページのロードが遅い問題

スタッツページ(だけじゃないけど)のロードがすごく遅くなった印象です。私はあまりこのページは利用していないのですが、開いてみると表示まで2-3秒はコンスタントにかかる印象です。

この現象と、色々と人から聞いた話から察するに、今季からBリーグはページ(フロントエンド)を変更しただけではなく、データベース(バックエンド)にも何かしらの変更があった可能性が高いと思います。その関連でページがデータを取得する方法が変わり、遅くなってしまったのではないでしょうか。

ページの表示速度というのは基本的には絶対正義、つまり誰しもが望むことだと思いますので、ここは改善して欲しいと思います。

スタッツページのコピペがやりにくい問題

これも私は最近やらなくはなったのですが、スタッツページをどかんとExcelにコピーするようなことがとてもやり辛くなりました。スタッツのテーブルを全選択するのも何かやり辛いですし、Excelにコピーしても1選手ごとに空行が2つ付いてくる構造になっているので、いちいちそれを取り除く作業をしなくてはなりません。

bleaguerなんかを使わなくても、スタッツのページの値をExcelでイジイジするだけでも相当に楽しいので、もちろん一部限定的なファンからの要望ではあるとは思いますが、スタッツのページはなるべくシンプルに保って頂くと嬉しいですね。少なくてもあまり装飾が必要なエリアではないと思っています。

スタッツからDUNKが消えた問題

これは別に私にとっては問題ではないのですが、スタッツからいつの間にかDUNKが消えております。

f:id:rintaromasuda:20201113082823p:plain

f:id:rintaromasuda:20201113083640p:plain

先日Twitterでダンクがスタッツなのか、最高記録更新を宣伝するものなのかという議論が交わされていましたが、実はページの方ではひっそりと今シーズンからダンクの項目が消えています。

先日の宣伝にあるようにBリーグとしてはダンクの数は数えているようで、それはPlay by Playなどに記録があることからも明らかです。おそらく上述の話題と関連するのですが、今季より何か新しいバックエンドがスタッツの記録に用いられていて、その中にはDUNKの項目が存在せず、既存のBリーグのデータベースからそちらに値を移すときにDUNKを捨てざるを得ないのではないでしょうか。あくまで推測ですが。

バンビシャス奈良 vs. ライジングゼファー福岡問題

私はここまで5シーズンすべてのゲームのスクレイピングをしてきたのですが、その中でいくつか例外的な扱いをする必要があるゲームというのはありました。ただ今季はまったくスクレイピングが出来ないゲームが現れてしまいました。以下のゲームです。

GAME REPORTがページに表示されておらず、かつページの内部にも値が見つからない為にスクレイピングが出来ません。またページの構造が他のゲームと違っているのか、BOX SCOREも他のゲームと同様のスクレイピングが出来ませんでした。このゲームについては手入力でbleaguerにデータを入れる必要がありますが、GAME REPORTにしかない項目については空白としておくしかありません。

デション・トーマス問題

アルバルク東京のデション・トーマス、合流から早速プレーで存在感を発揮していましたね。間違いなく今季の注目選手のひとりとなりそうなのですが、実は一部のデータクラスタでも注目を集めています。理由は以下で一目瞭然なのですが、各選手に割り当てられるプレイヤーID、トーマスに唐突にすごく大きな値が割り当てられているのです。

f:id:rintaromasuda:20201112221702p:plain

ほんのちょっと大きいだけならさして問題ではないのですが、この数(5100000003)って2の32乗(4294967296)より大きいんですよね…こうなるとこのIDを保存する型の変更を求めれる可能性が出てきて、例えば私のbleaguerもRのinteger型を使っていたので、この値の為に変更する羽目になりました。

NBAの方でもそうだったのですが、経験上(とか言って今回全然対応はできていないですが)人様のIDなどを流用するときは数値に見えても念のため文字列型の定義としておくのが確実ですね。場合によっては頭に0が付いたりとか、今回のように唐突に大きな値が来たりとか、突然アルファベットが入ってきたとかそんなことがありえますからね。

そう言えばこれを書いていて思い出したのですが、bleaguerでは背番号もinteger型で管理してしまっており、背番号0と背番号00を区別できないというマイナーな問題も発生してしまっています(反省)。

全試合スケジュールが表示できなくなった問題

私は以前botを制作し、以下のようなツイートで毎朝6:30頃にその日の日程をお知らせしています。

これをやる為にBリーグのスケジュールページにアクセスし、第1節から最終節までのすべてのスケジュールを取得してからその日の分だけを抜き出していたのですが、今シーズンからそれが出来なくなってしまいました。

現在はある節のすべてのゲーム、もしくはあるチームのすべてのゲームを表示する事はできるようですが、すべてのチームのすべての節のゲームは表示できないようです。

とりえあず何も考えずにアクセスすると、デフォルトで今節のゲームが表示されるので、それを利用してbotは直しましたが、ざっと向こうしばらくのゲームのスケジュールを眺めることが面倒くさくなってしまった印象です。

小言みたいになってしまうのですが、Bリーグはサイトにしろアプリにしろ、『閲覧者はどこか特定のチームを応援している』という前提に依りすぎている気がしています(もちろんそういう閲覧者の方が多数派だとは思いますが。)私のように特定のチームを応援しておらずその時々で気になったゲームを見る立場だと、ときどきページやアプリのひょんな落とし穴に落ちる感じがあります。小言ですけど。

まとめ

なんか文句を言っているような記事になってしまいましたが、現状は将来のシステム的な部分、IT的な部分でのステップアップの為の移行期間、痛みの期間だと信じてますので、基本的にはBリーグさんにはそのまま進んでもらいたいと思っております。頑張ってください。