どこかで聞いたようなタイトルだね、
ところでチョコとうんこってどこか似てるよねな冒頭はさておき…
あ、でもここが今回および次回における数少ないギャグ要素です。癒し。
しっかり摂取して後の展開に備えましょう。上級者向きな気がする…
今回はあのエルゼメキアの過去が語られる番外編。
続きを読むどこかで聞いたようなタイトルだね、
ところでチョコとうんこってどこか似てるよねな冒頭はさておき…
あ、でもここが今回および次回における数少ないギャグ要素です。癒し。
しっかり摂取して後の展開に備えましょう。上級者向きな気がする…
今回はあのエルゼメキアの過去が語られる番外編。
続きを読むさて以前の記事(約11か月前)からの続き内容となっています。
kikyou9drt.hatenablog.com
今回はローカルに保存されたまま放置されていたHTMLをどう料理するか考えていきたいと思います。
PythonとPythonからExcelを操作できるライブラリ、openPyxlを使用して、楽曲データをExcel化できないかと考えました。
beautifulSoupを使用してHTMLファイルを読み込みます。
この時、保存形式が.mhtmlだった場合は以下の記事を参考にデコード処理します。
marubodiary.hateblo.jp
tbody以下が楽曲データのテーブルとなっているようです。
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')
上記と同じくファイル名のみを取得し、ファイル名からクリアランプ種別を分岐。
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()
前回学園七不思議を見事解決したYSPクラブ。
学園長からの提案で、学校にあるYサークルの謎を調査することに。
アニメだと第8話にあたる内容。
続きを読む