下記は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")