Open amay077 opened 3 years ago
ファイル保存部分をファイル名に変更
def fetch_file(url, pdf_path):
r = requests.get(url)
r.raise_for_status()
p = pathlib.Path(pdf_path)
p.parent.mkdir(parents=True, exist_ok=True)
with p.open(mode="wb") as fw:
fw.write(r.content)
return p
スクレイピング部分を変更
dfs = []
tags = soup.find("span", text="▶ 愛知県内の発生事例").parent.find_all("a", href=re.compile(".pdf$"))[::-1]
for i, tag in enumerate(tags, 1):
link = urljoin(url, tag.get("href"))
path_pdf = fetch_file(link, f"./data/source{i}.pdf")
with pdfplumber.open(path_pdf) as pdf:
for page in pdf.pages:
table = page.extract_table()
df_tmp = pd.DataFrame(table[1:], columns=table[0])
dfs.append(df_tmp)
「愛知県内の発生事例」のPDFは、 https://www.pref.aichi.jp/site/covid19-aichi/ をスクレイピングしてダウンロードしているが、そのファイル名はランダム(日ごとに変わる)模様。
PDF は data.json のソースデータとして、 https://github.com/code4nagoya/covid19/tree/development/data へコミットしているが、ファイル名が変わるために、このディレクトリ内の PDF が増えていくのが問題。 ダウンロードするPDFは 2つ のみ(当月 と 先月まで)なので 2ファイルしか存在しないのが望ましい。
m/code4nagoya/covid19-aichi-tools/pull/86 の修正により発生した可能性が高く、それ以前は、ファイル名は
source1.pdf
,source2.pdf
…sourceN.pdf
で固定されていた。以前のように
source1.pdf
,source2.pdf
でもよいし、YYYYMM.pdf
の形式にしてもよい。