アニメ『妖怪学園Y 46話 アナンと氷の女王 悲しく稀有な宇宙の物語』感想

どこかで聞いたようなタイトルだね、

ところでチョコとうんこってどこか似てるよねな冒頭はさておき…

あ、でもここが今回および次回における数少ないギャグ要素です。癒し。
しっかり摂取して後の展開に備えましょう。上級者向きな気がする…

今回はあのエルゼメキアの過去が語られる番外編。

第46話 アナンと氷の女王 悲しく稀有な宇宙の物語

Amazonアナンと氷の女王 悲しく稀有な宇宙の物語

続きを読む

保存したbeatmaniaIIDXの楽曲データからスクレイピングでExcelファイルを作る【Python】

さて以前の記事(約11か月前)からの続き内容となっています。
kikyou9drt.hatenablog.com
今回はローカルに保存されたまま放置されていたHTMLをどう料理するか考えていきたいと思います。
PythonPythonからExcelを操作できるライブラリ、openPyxlを使用して、楽曲データをExcel化できないかと考えました。

やること

1.HTMLファイルを読み込む。

beautifulSoupを使用してHTMLファイルを読み込みます。
この時、保存形式が.mhtmlだった場合は以下の記事を参考にデコード処理します。
marubodiary.hateblo.jp

2.タグ構造を解析しリストに追加

f:id:kikyou_kiki:20201126224648p:plain
tbody以下が楽曲データのテーブルとなっているようです。
f:id:kikyou_kiki:20201126224755p:plain
3つ目のtr以下に楽曲データが入っています。
曲名、難易度種別、スコアは(とりあえず)そのまま持っていき、
DJ LEVELとクリアランプは画像へのリンクとなっているので加工します。

# クリアレベル
clearlevel = data[2].find('img')['src'].split("/")
record.append(clearlevel[-1].rstrip('.gif'))

直接取得するとクリアレベル画像のURLが取得できるので、
そこからファイル名のみを取得し、拡張子の.gifをカット。

# クリアランプ
clearFlag = data[4].find('img')['src'].split("/")
if clearFlag[-1] == 'clflg1.gif':
    record.append('failed')
elif clearFlag[-1] == 'clflg2.gif':
    record.append('A-Clear')
elif clearFlag[-1] == 'clflg3.gif':
    record.append('E-Clear')
elif clearFlag[-1] == 'clflg4.gif':
     record.append('Clear')
elif clearFlag[-1] == 'clflg5.gif':
    record.append('H-Clear')
elif clearFlag[-1] == 'clflg6.gif':
    record.append('EXH-Clear')
elif clearFlag[-1] == 'clflg7.gif':
    record.append('FullCombo')

上記と同じくファイル名のみを取得し、ファイル名からクリアランプ種別を分岐。

3.Excel

OpenPyxlで配列の内容を保存します。

(適当に書いた)ソースコード全貌

# coding: utf-8
from bs4 import BeautifulSoup
#import quopri    #デコードがいる場合
import openpyxl

def main():
    # ファイルの場所を指定
    html = ('')
    
    soup = BeautifulSoup(open(html), 'lxml', from_encoding='Shift_JIS')
    soup.prettify('Shift_JIS')
    
    # <tr>~</tr>を取得
    table = soup.find_all('tbody')[1]
    tr = table.find_all('tr')
    
    outdata = []
    for Row in tr:
        data = Row.find_all('td')
        record = []
        if (len(data)> 2):
            # 曲名
            #musicname = quopri.decodestring(data[0].text)    #デコードがいる場合このように処理
            musicname = data[0].text
            record.append(musicname)
            # 難易度種別
            difficult = data[1].text
            record.append(difficult)
            # クリアレベル
            clearlevel = data[2].find('img')['src'].split("/")
            record.append(clearlevel[-1].rstrip('.gif'))
            # スコア
            score = data[3].text
            record.append(score)
            # クリアランプ
            clearFlag = data[4].find('img')['src'].split("/")
            if clearFlag[-1] == 'clflg1.gif':
                record.append('failed')
            elif clearFlag[-1] == 'clflg2.gif':
                record.append('A-Clear')
            elif clearFlag[-1] == 'clflg3.gif':
                record.append('E-Clear')
            elif clearFlag[-1] == 'clflg4.gif':
                record.append('Clear')
            elif clearFlag[-1] == 'clflg5.gif':
                record.append('H-Clear')
            elif clearFlag[-1] == 'clflg6.gif':
                record.append('EXH-Clear')
            elif clearFlag[-1] == 'clflg7.gif':
                record.append('FullCombo')

            outdata.append(record)
    #print(outdata)    #出力確認

    #Excelシート化
    wb = openpyxl.Workbook()
    ws = wb.active

    for row in outdata:
        ws.append(row)

    #ファイルの保存場所指定
    wb.save('')

if __name__ == "__main__":
    main()

実行結果

コンソール

f:id:kikyou_kiki:20201126230020p:plain

PS4『妖怪学園Y ~ワイワイ学園生活~』プレー日記5:見てはいけないものと遭遇してしまったようだ。

前回学園七不思議を見事解決したYSPクラブ。

学園長からの提案で、学校にあるYサークルの謎を調査することに。

アニメだと第8話にあたる内容。

kikyou9drt.hatenablog.com

  • 調査!Yサークル
  • 一方そのころ外では
  • 一方そのころ内部では
  • 危機を脱して。

 

続きを読む

アニメ『妖怪学園Y 45話 超決戦!キラボシキャッスル攻略作戦!』感想

 霧隠ラントの処刑までのこり5時間。

クウカの目の前で連れていかれる会長…

超決戦! キラボシキャッスル攻略作戦!

超決戦! キラボシキャッスル攻略作戦!

 

続きを読む