ミリシタメンバーの楽曲を検索できるWebアプリを作ろうとしてる話

Created 2018年12月22日11:31
Updated 2018年12月24日16:32
Categories Django Python ミリシタ

ミリシタを初めて早4か月。めちゃくちゃハマりました。ミリシタは良い文明。

アイマスは初めてなので認識があっているのか分かりませんが、ミリシタに出てくるメンバー(特に765PRO ALLSTARS)は10年以上親しまれているアイドルも多く、その歴史の中で数々の楽曲が作られています(いるそうです)。

好きなキャラが多いので是非ともその子たちの楽曲を知りたい・買いたいと思ったのですが、統一的に検索できる良い方法があまりないみたいです。

というわけで、無いなら作ってみようと思い立ち、開発に取り組みました。

機能

当面の目標はミリシタメンバーの楽曲をそれなりに満足に検索できるようにする事です。

  • アイドルごとの検索
  • ユニットごと・属性ごとの検索
  • キーワード検索

など、なるべく自由に検索でき、検索結果からさらに派生して曲やアルバムを見れるような形にしたいと思っています。APIもできれば作りたい。

曲の情報などはWebサイトからPythonでスクレイピングを行い、Djangoに登録して閲覧する。というような流れでいきたいと思います。

とりあえずアイドル一覧を取得

ミリオンライブWikiからアイドル一覧をスクレイピングで取得してみました。

これはかなりうまくいったと思います。こういったWikiはフォーマットに従ってしっかり書いてくれる方が多いので、スクレイピングがしやすくありがたいです。

ユニット一覧を取得してみた

この流れでミリオンライブWikiの各アイドルの詳細ページの曲情報から、ユニット名と所属アイドルの関係を取得してみました。

こちらもかなりうまくいきました。ただしこれはミリオンライブWikiなので、シアターデイズのユニット名は入っていません。

何ならアイドルマスター(無印?で合ってますかね)にもユニットが存在するかもしれないので、そちらも考えないといけません・・・

Lantisから曲情報の取得

アイドルとユニット(の一部)が取得できたため、次は曲情報を取得してみたいと思います。

いろいろと考えたのですが、曲情報は複数のWebサイトからスクレイピングして取ってくるのが良いのではないかと思っています。

そのひとつとして、Lantisのディスコグラフィからスクレイピングを行いました。

アルバム情報はいい感じに取得できました。

しかし、曲の情報の書き方に統一性が無く、取得するのにとても苦労しました。どうやら曲情報は自動生成ではなく手書きHTMLのようです。(しかもけっこう汚い・・・)

曲の取得については改善案を考えたので、今日か明日あたりで時間があれば試してみようと思います。

今後の課題

課題としてけっこう面白そうなので、春くらいまでにちょくちょく進めていければと思っています。

また、開発中の成果はデプロイして逐次公開できればと思っています。

課題としては、とりあえず

  • Lantisの曲スクレイピングの改善
  • ミリオンライブWiki以外からのユニットの取得
  • Lantis以外からの曲情報の取得
  • 手動で登録や編集を行う仕組みの検討

くらいでしょうか。先達の知恵をお借りしてミリシタの知識を付けつつ、実装も頑張っていければと思います。

コメントを投稿

コメント