愛知県の新型コロナウイルス感染症患者の発生について(日報)をスクレイピング

下記はPDFからテキスト読み取れない

画像?

コード

import datetime
import re
import time
from urllib.parse import urljoin

import feedparser
import pandas as pd
import requests
from bs4 import BeautifulSoup
from tabula import read_pdf


def str2date(s):

    n = re.findall("[0-9]{1,4}", s)

    y = dt_now.year

    if len(n) == 2:
        m, d = map(int, n)
        return datetime.date(y, m, d)

    elif len(n) == 3:
        y, m, d = map(int, n)
        return datetime.date(y, m, d)

    else:
        return pd.NaT


JST = datetime.timezone(datetime.timedelta(hours=+9))
dt_now = datetime.datetime.now(JST)

entries = feedparser.parse("https://www.pref.aichi.jp/rss/10/site-758.xml")["entries"]

dfs = []

for entry in entries:

    if re.match("新型コロナウイルス感染症患者の発生について", entry["title"]):

        url = entry["link"]

        r = requests.get(url)
        r.raise_for_status()

        soup = BeautifulSoup(r.content, "html.parser")

        dt_str = soup.select_one("#main_a > div.text_r").contents[-1].strip()
        dt_update = str2date(dt_str)

        tag = soup.find("a", text=re.compile("^新型コロナウイルス感染症患者"))

        if tag and dt_update > datetime.date(2020, 7, 23):

            link = urljoin(url, tag.get("href"))

            print(f"{dt_update.isoformat()}: {link}")

            df_tmp = read_pdf(link, pages="all", lattice=True)

            if len(df_tmp) > 0:

                df = pd.concat(df_tmp)
                df.set_index("症例番号", drop=True, inplace=True)

                df["特記事項"] = df["特記事項"].str.replace("\s", "")

                df["発症日"] = df["発症日"].apply(str2date)
                df["陽性確定日"] = df["陽性確定日"].apply(str2date)

                df.to_csv(f"{dt_update.isoformat()}.csv")

                dfs.append(df)

            else:
                print(f"{dt_update.isoformat()}: テーブルが見つかりません")

        time.sleep(3)

df_all = pd.concat(dfs).sort_index()
df_all.to_csv("all.tsv")