成果物
作成したもの
新曲通知bot
作成期間
平日2時間程度を1週間ちょっと
詳細
JASRACが公開している、楽曲検索より好きな作曲家が新曲を出したときにslack通知してくれるbot
使用言語
どのように実現したか
最初はBeutiful soupを使用しようとしたが、1ページ内にすべての楽曲が表示されず、データを一括取得できなかったため、seleniumに変更した。
実際の動き
JASRACKの検索ページから、目的の作曲家の名前を検索させる。
前回値と比較し、検索結果が多かった場合、「並び替え」より【作品コード順】に変更し、最終ページの最後に表示された楽曲を取得する。
①1曲のみ追加の場合
最終行の【作品タイトル】【アーティスト名】をslackに投稿
②2曲以上追加の場合
前回取得した行の次の行から順に【作品タイトル】【アーティスト名】をslackに投稿
③2曲以上追加かつ、ページが前回取得から変わっていた場合
先頭曲を前回取得時と比較し、異なっていた場合はひとつ前のページに戻り、前回取得した行の次の行から順に【作品タイトル】【アーティスト名】をslackに投稿
動画は、③のパターン
問題点
・作品コード順で並び替えると、最新のものが最後に表示されると思っていたが、そうではなかった
→ 作り終わりに気づいたので、とりあえず当初の予定通り作成。
代替案も考えたが、JASRACKのページ内には日付等の新旧が比較できるような情報がないため、曲名を保存し、コード実行時に前回値と比較するなどか思いつかなった。
・なぜか前回取得した行が6行以上になると、エラーになる。
→ 前回取得した楽曲が5行目までは問題なく動くが、6行目以降になるとなぜかエラーが発生する。seleniumのgoogleDriverが原因のようなエラーが出ているが、具体的な原因がわからず、修正ができていない。
・スクレイピングに向いていないサイトだった
→楽曲情報を一括で取得する方法がなく、seleniumで無理やり動かすほかなかった。
今後、もしスクレイピングをしたいと思った場合は、情報を一括取得できるようなサイトを利用するとよいと思った。