pip install requests
pip install beaufifulsoup4
import requests
from bs4 import BeautifulSoup
import sys
import csv
"""
del sys.argv[1:]
sys.argv.append("https://www.pref.saga.lg.jp/kiji00373220/")
sys.argv.append("3")
print(sys.argv)
"""
args = sys.argv
if len(args) > 1:
url = args[1]
n = 0
if len(args) > 2:
if args[2].isdigit():
n = int(args[2])
r = requests.get(url)
r.raise_for_status()
soup = BeautifulSoup(r.content, "html.parser")
tables = soup.find_all("table")
if len(tables) > n:
data = [
[td.get_text(strip=True) for td in trs.find_all(["th", "td"])]
for trs in tables[n].find_all("tr")
]
writer = csv.writer(sys.stdout)
writer.writerows(data)
佐賀県のコロナ日付変換
import datetime
import re
import pandas as pd
def days2date(s: str) -> pd.Timestamp:
y = dt_now.year
days = re.findall("[0-9]{1,2}", s)
if len(days) == 2:
m, d = map(int, days)
if dt_now.month < m:
y -= 1
return pd.Timestamp(year=y, month=m, day=d)
else:
return pd.NaT
JST = datetime.timezone(datetime.timedelta(hours=+9), "JST")
dt_now = datetime.datetime.now(JST)
df = pd.DataFrame(data[1:], columns=data[0])
df["結果判明日"] = df["結果判明日"].apply(days2date).fillna(method="ffill")
df.to_csv(sys.stdout, index=False, header=False)