[PYTHON] Scraping PDF du statut des personnes testées positives dans chaque préfecture du ministère de la Santé, du Travail et du Bien-être social

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",
    "^À propos de la situation actuelle de la nouvelle infection à coronavirus et de la réponse du ministère de la Santé, du Travail et du Bien-être social",
)

link = get_link(url, "Pièce jointe 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["Nom des préfectures"] = df["Nom des préfectures"].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

Scraping PDF du statut des personnes testées positives dans chaque préfecture du ministère de la Santé, du Travail et du Bien-être social
Scraping PDF de la liste nationale des salaires minimums par région du ministère de la Santé, du Travail et du Bien-être social
Data Langling PDF sur l'épidémie de grippe par le ministère de la Santé, du Travail et du Bien-être social
Nettoyage des données des données ouvertes de la situation d'occurrence du ministère de la Santé, du Travail et des Affaires sociales
Data wrangling (pdfplumber) PDF sur l'épidémie de grippe par le ministère de la Santé, du Travail et du Bien-être social
[Python] Lisez automatiquement les informations par préfecture du nouveau virus corona du PDF du ministère de la Santé, du Travail et du Bien-être social et écrivez-les dans un tableur ou Excel.
Scraping Go To EAT membres magasins dans la préfecture d'Osaka et conversion au format CSV
[Python] Le statut de chaque préfecture du nouveau virus corona n'est publié qu'en PDF, mais j'ai essayé de le gratter sans le télécharger.
Gratter la liste des magasins membres Go To EAT dans la préfecture de Fukuoka et la convertir en CSV
Gratter la liste des magasins membres Go To EAT dans la préfecture de Niigata et la convertir en CSV
Racler le calendrier de Hinatazaka 46 et le refléter dans Google Agenda
[Python] Créez un script qui utilise FeedParser et LINE Notify pour informer LINE des dernières informations sur le nouveau virus corona du ministère de la Santé, du Travail et des Affaires sociales.
Statut de chaque système de traitement Python en 2020
Faites correspondre la distribution de chaque groupe en Python
Visualisation de l'état d'utilisation de l'évier dans l'entreprise
Vérifiez le temps de traitement et le nombre d'appels pour chaque processus avec python (cProfile)