ポケモンカードイベントを通知するDiscord Botを作ってみた

斉藤朱夏の2ndシングルがゲオやツタヤでもレンタル取り扱ってなくて悲しくなってます。

1. 概要

本プログラムの概要については以下の通りです。

  1. 毎週月曜日の昼12時に1週間の岩手県盛岡市内に開催されるイベントの情報を収集する。
  2. 収取したイベントの情報を体裁を整えて、Discordへ通知する。

ポケモンカードのイベント一覧ページはJavaScriptを用いた動的HTMLで生成されているので、PythonのRequestsライブラリを用いて情報を取得するのは不可能でした。 そのため、Seleniumでブラウザを立ち上げて、イベントページを開き、生成されたHTMLを取得するという手法を用いました。 また、取得したHTMLはBeautifulsoupを用いて解析して、開催日程や開催店舗などの情報を取得し、体裁を整えて、Discordへ通知するように設計しました。 通知先のアプリとしてDiscordを選んだ理由で強いものはなく、LINEを使うのが嫌だったという理由です。

また、毎週月曜日の昼12時に定期実行するのはWindowsのタイムスケジューラやmacのcronを使用するのも1つの手ですが、パソコンを起動していないといけない条件があるため、AWS Lambdaを使用することにしました。

2. 使用環境およびライブラリ

3. ソースコードと実行結果

ソースコードは後日掲載

実行結果1

今週の岩手県盛岡市内におけるポケモンカードのイベント予定をお知らせします。

1月11日(月)
萬屋 盛岡店
https://www.pokemon-card.com/event/detail.html?shop_id=12767&ymd=20210111
13:00-15:00 【21/1】Vスタートデッキはじめて改造バトル 小学生以下
13:00-15:00 【21/1】Vスタートデッキはじめて改造バトル オープン
15:00-17:00 【21/1】ポケモンカードジム トレーナーズリーグ(オープンリーグ)スタンダード
15:00-17:00 【21/1】ポケモンカードジム トレーナーズリーグ(ジュニアリーグ)スタンダード

1月12日(火)
萬屋 盛岡店
https://www.pokemon-card.com/event/detail.html?shop_id=12767&ymd=20210112
19:00-19:00 【21/1】ポケモンカードジム ジムバトル

1月14日(木)
みっきー
https://www.pokemon-card.com/event/detail.html?shop_id=13500&ymd=20210114
19:00-21:00 こずかたポケモンカードジム@萬屋

1月16日(土)
TSUTAYA 盛岡南店
https://www.pokemon-card.com/event/detail.html?shop_id=13115&ymd=20210116
13:00-16:00 【21/1】ポケモンカードジム トレーナーズリーグ(オープンリーグ)スタンダード

1月17日(日)
ホビースクエアにしな みたけ店
https://www.pokemon-card.com/event/detail.html?shop_id=10333&ymd=20210117
13:00-15:00 【21/1】Vスタートデッキバトル ~イーブイゲットだぜ~ オープン
13:00-15:00 【21/1】Vスタートデッキバトル ~イーブイゲットだぜ~ 小学生以下
15:00-17:00 【21/1】ポケモンカードジム トレーナーズリーグ(オープンリーグ)エクストラ

イベントの詳細などの情報は各自ご確認ください。

実行結果2

今週開催のイベントはありません。

4. 感想

定期実行するプログラムとして初めてAWS Lambdaを使用しましたため、少し戸惑ってしまいましたが無事にプログラムの定期実行環境を整えることができたのでよかったです。 ただ、作ったのはいいのですが投稿日現在、COVID-19によりイベントが全滅状態なため、ほとんど活用できないのが悲しいです。

参考