蛇ノ目の記

技術のことも。そうでないことも。

TIF 2022の日別ラインナップをスクレイピングしてみた

今年もTIFのラインナップが出揃う時期になってきましたね。

公式サイトのラインナップでは、"何日にどこが出るか"というのをやや把握しづらいのでスクレイピングしてまとめてみた、という話です。

どこのご家庭でも簡単に用意できるBeautifulSoup4requestsを使うお手軽なやつです。昼休憩を使ってざっくり書いてみた。

日別ラインナップだけ見たいよ、という向きはこちらへどうぞ。

スクレイピング解説

各グループはp-lineup_artist_data tif22-daynというクラスのCardで表示されているようです。

1日目であればp-lineup_artist_data tif22-day1、1日目と2日目の場合は p-lineup_artist_data tif22-day1_2といった具合。

グループ名は p-lineup_artist_data tif22-day3 の子要素で、 p-lineup_artist_data__name > p-lineup_artist_data__name-text という入れ子になっていました。

今回はグループ名が取れない場合を考慮しなくて済んだので、読みやすさは少し犠牲にして内包表記で書いています(L17-22)。

また、「えのぐ ※ お台場でのステージ出演あり」のように補足がある場合も、p-lineup_artist_data__name-textの中に書かれているため、それを考慮して改行文字で分割、先頭の要素をグループ名として取得しています。

そこだけわかればあとは書いていくだけ。

困ったこと

スクレイピングした結果をMarkdown形式で出力しているわけですが、困ることが2つ。

  1. 01familiaのグループ(#2i2#ババババンビ, etc...)は頭文字が#なので見出しになる

これは出力するときに先頭の#エスケープすればOK。

  1. 4864.が文字化けする謎現象
- 4864.

と出力すると、- 1. .と表示される謎現象が発生した。詳しく調べていないので、背景は不明ですがとりあえず4864\.と末尾のドットをエスケープすることで解決。

gist.github.com

TIF 2022 日別ラインナップ

5日