[PYTHON] PDF-Kratzer über den Status testpositiver Personen in jeder Präfektur des Ministeriums für Gesundheit, Arbeit und Soziales

apt install python3-tk ghostscript
pip install camelot-py[cv]
pip install requests
pip install beautifulsoup4
import re
from urllib.parse import urljoin

import camelot
import pandas as pd

import requests
from bs4 import BeautifulSoup

def get_link(url, text):

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

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

    tag = soup.find("a", text=re.compile(text))

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

    return link

def set_col(df, n = 1):

    if n > 1:
        columns = ["".join(i) for i in zip(*(df.head(n).values))]

    else:
        columns = df.iloc[0]

    return df.iloc[n:].set_axis(columns, axis=1).reset_index(drop=True)

url = get_link(
    "https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/0000121431_00086.html",
    "^Über die aktuelle Situation einer neuen Coronavirus-Infektion und die Reaktion des Ministeriums für Gesundheit, Arbeit und Soziales",
)

link = get_link(url, "Anhang 1")

tables = camelot.read_pdf(link, pages="all", split_text=True, strip_text="\n", )

df1 = set_col(tables[0].df, 2)
df2 = set_col(tables[1].df)

df = pd.concat([df1, df2], axis=1)

df.columns = df.columns.str.replace("\s", "").str.replace("※\d", "")

df["Name der Präfekturen"] = df["Name der Präfekturen"].str.replace("\s", "").str.replace("※\d", "")

df = df.apply(lambda x: x.str.replace(",", ""))

df.mask(df == "-", inplace=True)

df.to_csv("corona.csv", encoding="utf_8_sig")

Recommended Posts

PDF-Kratzer über den Status testpositiver Personen in jeder Präfektur des Ministeriums für Gesundheit, Arbeit und Soziales
PDF-Datei mit der nationalen Liste der Mindestlöhne nach Regionen des Ministeriums für Gesundheit, Arbeit und Soziales
Daten Langling PDF über den Ausbruch der Influenza durch das Ministerium für Gesundheit, Arbeit und Soziales
Datenbereinigung offener Daten zur Ereignissituation des Ministeriums für Gesundheit, Arbeit und Soziales
Data Langling (pdfplumber) PDF über den Ausbruch der Influenza durch das Ministerium für Gesundheit, Arbeit und Soziales
[Python] Lesen Sie automatisch Informationen der Präfektur des neuen Koronavirus aus dem PDF des Ministeriums für Gesundheit, Arbeit und Soziales und schreiben Sie sie in eine Tabelle oder in Excel.
Scraping Gehen Sie zu EAT-Mitgliedsgeschäften in der Präfektur Osaka und konvertieren Sie zu CSV
[Python] Der Status jeder Präfektur des neuen Koronavirus wird nur als PDF veröffentlicht, aber ich habe versucht, ihn zu kratzen, ohne ihn herunterzuladen.
Verschrotten Sie die Liste der Go To EAT-Mitgliedsgeschäfte in der Präfektur Fukuoka und konvertieren Sie sie in CSV
Verschrotten Sie die Liste der Go To EAT-Mitgliedsspeicher in der Präfektur Niigata und konvertieren Sie sie in CSV
Verschrotten Sie den Zeitplan von Hinatazaka 46 und spiegeln Sie ihn in Google Kalender wider
[Python] Erstellen Sie ein Skript, das FeedParser und LINE Notify verwendet, um LINE über die neuesten Informationen zum neuen Koronavirus des Ministeriums für Gesundheit, Arbeit und Soziales zu informieren.
Status jedes Python-Verarbeitungssystems im Jahr 2020
Passen Sie die Verteilung jeder Gruppe in Python an
Visualisierte den Nutzungsstatus der Spüle im Unternehmen
Überprüfen Sie die Verarbeitungszeit und die Anzahl der Aufrufe für jeden Prozess mit Python (cProfile).