はてなブログ用の表組みの自動生成
少量のデータなら手打ちでいいですが、大量の表形式のデータをブログに書く手間を省きたいものです。
ということで、サンプルです。
○例1
百人一首のを収めたテキストファイルから、はてなブログ用の表組みを出力します。
ここのページにデータがあります。
# coding: utf-8 with open("hyaku.txt", "r") as f: # txt形式の読み込み data = f.read() # ひとまとまりのデータ data = data.split("\n") print(len(data)) # 100 for i, string in enumerate(data): t = "|*{}|{}|".format(i + 1, string) print(t) #|*1|あきのたの かりほのいほの とまをあらみ わがころもでは つゆにぬれつつ| #|*2|はるすぎて なつきにけらし しろたへの ころもほすてふ あまのかぐやま| #|*3|あしびきの やまどりのをの しだりをの ながながしよを ひとりかもねむ| # ...
この出力をコピーしてはてな記法のページにコピペですね。
ウェブの表組みを読み込んでリストを作る場合は
import pandas as pd url = 'http://python-remrin.hatenadiary.jp/entry/2017/04/23/000000' ## DataFrameのリストを得る。header=0のオプション指定で、最初の行をheader扱い。 fetched = pd.io.html.read_html(url) print(len(fetched)) # listの要素であるDataFrameの個数 df = fetched[0] # 2次元リスト化 data = [] for i in range(len(df)): x = [] for j in range(len(df.iloc[0])): x.append(df.iloc[i, j]) data.append(x) print(data) # hatena表組み化 for i in range(len(df)): s = "|" for j in range(len(df.iloc[0])): s += str(df.iloc[i, j]) + "|" print(s)
○例2
アンスコムの例
url = 'http://python-remrin.hatenadiary.jp/entry/2017/04/23/000000_1' fetched = pd.io.html.read_html(url) # DataFrameのリスト print(len(fetched)) # 1 listの要素であるDataFrameの個数 print(fetched[0]) df = fetched[0] # hatena表組み化 for i in range(len(df)): s = "|" for j in range(len(df.iloc[0])): s += str(df.iloc[i, j]) + "|" print(s)
作りたい表の形式が変わるときは、プログラムをいじって対応です。