tableをcsvに変換、csvを標準出力

pip install requests
pip install beaufifulsoup4
import requests
from bs4 import BeautifulSoup

import sys
import csv

# argv test

"""
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)