小樽市のコロナの感染状況を可視化
http://otaru-open.city/experiment/covid19-May2021/ ← 2021年5月のデータを可視化したもの
2021年5月29日の小樽市のコロナ感染者情報を取得方法について説明する
小樽市では、下記のようなhtml 形式( https://www.city.otaru.lg.jp/docs/2021031700187/)で公開されている。
このhtml をダウンロードするために、wget を用いて、下記のように実行する
wget https://www.city.otaru.lg.jp/docs/2021031700187/
ダウンロードしたhtmlは下記のようになっているので、python で csv に変換する。
<tr>
<td>837</td>
<td>5月1日</td>
<td>非公表</td>
<td>男性</td>
<td>小樽市</td>
<td>日本国籍</td>
<td>非公表</td>
<td>軽症</td>
<td>4月27日</td>
<td>入院等調整中</td>
<td>あり</td>
</tr>
import re
import sys
import pandas as pd
with open("index.html","r") as F:
data = F.read()
'''
<tr>
<td>837</td>
<td>5月1日</td>
<td>非公表</td>
<td>男性</td>
<td>小樽市</td>
<td>日本国籍</td>
<td>非公表</td>
<td>軽症</td>
<td>4月27日</td>
<td>入院等調整中</td>
<td>あり</td>
</tr>
'''
data = data.replace("\n","")#改行削除
data = data.replace("\t","")#タブ削除
trRegex = re.compile("(<tr>(.+?)<\/tr>)")
tdRegex = re.compile("<td>(.+?)<\/td>")
csv=[]#初期化
if (m_iter := trRegex.finditer(data)) is not None:#複数のマッチにも対
for tr in m_iter:
line = tr.group(1)#trタグを取得する:
print(tr.group(1))#trタグを取得する:
items=[]#初期化
if (td_iter := tdRegex.finditer(line)) is not None:#複数のマッチにも対応
for td in td_iter:
column = td.group(1)#tdタグを取得する:
column = column.replace("<p>","")
column = column.replace("</p>","")
print("td:",column)
items.append(column)#項目追加
if len(items)==11:
csv.append(items)
df = pd.DataFrame(csv)#csv
df.to_csv("covic-19.csv")