Created 2018年12月22日11:31
Updated 2018年12月24日16:32
Categories
Django
Python
ミリシタ
ミリシタを初めて早4か月。めちゃくちゃハマりました。ミリシタは良い文明。
アイマスは初めてなので認識があっているのか分かりませんが、ミリシタに出てくるメンバー(特に765PRO ALLSTARS)は10年以上親しまれているアイドルも多く、その歴史の中で数々の楽曲が作られています(いるそうです)。
好きなキャラが多いので是非ともその子たちの楽曲を知りたい・買いたいと思ったのですが、統一的に検索できる良い方法があまりないみたいです。
というわけで、無いなら作ってみようと思い立ち、開発に取り組みました。
ミリシタメンバーの曲の統一的なDBを作るモチベが沸いた
— テクノさかき駅 (@Sakaki333) 2018年12月18日
当面の目標はミリシタメンバーの楽曲をそれなりに満足に検索できるようにする事です。
など、なるべく自由に検索でき、検索結果からさらに派生して曲やアルバムを見れるような形にしたいと思っています。APIもできれば作りたい。
曲の情報などはWebサイトからPythonでスクレイピングを行い、Djangoに登録して閲覧する。というような流れでいきたいと思います。
ミリオンライブWikiからアイドル一覧をスクレイピングで取得してみました。
とりあえずWikiからスクレイピングしてアイドル一覧を登録してみた。ロコちゃんに注釈付いてるのおもろいw pic.twitter.com/Xby1AX6Kcz
— テクノさかき駅 (@Sakaki333) 2018年12月21日
これはかなりうまくいったと思います。こういったWikiはフォーマットに従ってしっかり書いてくれる方が多いので、スクレイピングがしやすくありがたいです。
この流れでミリオンライブWikiの各アイドルの詳細ページの曲情報から、ユニット名と所属アイドルの関係を取得してみました。
ユニットのスクレイピングはおおよそうまくいった気がする。ただミリオンライブWikiなのでシアターデイズのユニットは入ってない。 pic.twitter.com/seAMC7j6nn
— テクノさかき駅 (@Sakaki333) 2018年12月21日
こちらもかなりうまくいきました。ただしこれはミリオンライブWikiなので、シアターデイズのユニット名は入っていません。
何ならアイドルマスター(無印?で合ってますかね)にもユニットが存在するかもしれないので、そちらも考えないといけません・・・
アイドルとユニット(の一部)が取得できたため、次は曲情報を取得してみたいと思います。
いろいろと考えたのですが、曲情報は複数のWebサイトからスクレイピングして取ってくるのが良いのではないかと思っています。
そのひとつとして、Lantisのディスコグラフィからスクレイピングを行いました。
アルバム情報はいい感じに取得できました。
Lantisのサイトに載ってただけでもアルバム67枚もあるのかよ・・・ pic.twitter.com/7CCm9c6myF
— テクノさかき駅 (@Sakaki333) 2018年12月21日
しかし、曲の情報の書き方に統一性が無く、取得するのにとても苦労しました。どうやら曲情報は自動生成ではなく手書きHTMLのようです。(しかもけっこう汚い・・・)
曲はLantisのサイトから取ったけどページの統一性が無さすぎて取れたり取れなかったりでしんどい。 pic.twitter.com/c4j4AVF37j
— テクノさかき駅 (@Sakaki333) 2018年12月21日
曲の取得については改善案を考えたので、今日か明日あたりで時間があれば試してみようと思います。
課題としてけっこう面白そうなので、春くらいまでにちょくちょく進めていければと思っています。
また、開発中の成果はデプロイして逐次公開できればと思っています。
課題としては、とりあえず
くらいでしょうか。先達の知恵をお借りしてミリシタの知識を付けつつ、実装も頑張っていければと思います。