[PYTHON] Scraping Go To EAT membres magasins dans la préfecture d'Osaka et conversion au format CSV

Suppression des magasins membres de la Campagne Go To Eat Osaka

import time

import requests
from bs4 import BeautifulSoup

import pandas as pd

result = []

url = "https://goto-eat.weare.osaka-info.jp/?search_element_0_0=2&search_element_0_1=3&search_element_0_2=4&search_element_0_3=5&search_element_0_4=6&search_element_0_5=7&search_element_0_6=8&search_element_0_7=9&search_element_0_8=10&search_element_0_9=11&search_element_0_cnt=10&search_element_1_0=12&search_element_1_1=13&search_element_1_2=14&search_element_1_3=15&search_element_1_4=16&search_element_1_5=17&search_element_1_6=18&search_element_1_7=19&search_element_1_8=20&search_element_1_9=21&search_element_1_10=22&search_element_1_11=23&search_element_1_12=24&search_element_1_13=25&search_element_1_14=26&search_element_1_15=27&search_element_1_16=28&search_element_1_17=29&search_element_1_cnt=18&searchbutton=%E5%8A%A0%E7%9B%9F%E5%BA%97%E8%88%97%E3%82%92%E6%A4%9C%E7%B4%A2%E3%81%99%E3%82%8B&csp=search_add&feadvns_max_line_0=2&fe_form_no=0"

while True:

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

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

    for li in soup.select("div.search_result_box > ul > li"):

        data = {}
        data["Nom du magasin"] = li.select_one("p.name").get_text(strip=True)
        data["Genre"], data["zone"] = li.select_one("ul.tag_list").stripped_strings

        for tr in li.table.select("tr"):

            k = tr.th.get_text(strip=True)

            if k == "adresse de rue":
                v = list(tr.td.stripped_strings)

                data["Code postal"] = v[0]
                data[k] = " ".join(v[-1].split())
            else:
                data[k] = tr.td.get_text(strip=True)

        result.append(data)

    tag = soup.select_one("div.wp-pagenavi > a.nextpostslink")

    if tag:

        url = tag.get("href")

    else:
        break

    time.sleep(1)

df = pd.DataFrame(result).reindex(
    columns=["Nom du magasin", "Genre", "zone", "Code postal", "adresse de rue", "TEL", "heures de travail", "Vacances régulières"]
)

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

Recommended Posts

Scraping Go To EAT membres magasins dans la préfecture d'Osaka et conversion au format CSV
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
Convertir le PDF des magasins membres Go To EAT de la préfecture d'Ishikawa en CSV
Convertir le PDF de la liste des magasins membres Go To EAT dans la préfecture de Niigata en CSV
Convertir le PDF des magasins disponibles de Go To EAT dans la préfecture de Kagoshima en CSV
Convertir le PDF de la liste des magasins membres Go To EAT dans la préfecture de Kumamoto en CSV
Convertir le PDF de la préfecture de Chiba Aller à la liste des magasins des membres EAT en CSV (commande)
L'histoire de la recherche d'un magasin BOT (AI LINE BOT) pour Go To EAT dans la préfecture de Chiba (1)
Histoire de faire une recherche de magasin BOT (AI LINE BOT) pour Go To EAT dans la préfecture de Chiba (2) [Présentation]
Même dans le processus de conversion de CSV en délimiteur d'espace, essayez sérieusement de séparer les entrées / sorties et les règles
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
Racler le calendrier de Hinatazaka 46 et le refléter dans Google Agenda
Créez une fonction pour obtenir le contenu de la base de données dans Go
Prédisez la quantité d'énergie utilisée en 2 jours et publiez-la au format CSV
Comparer la grammaire de base de Python et Go d'une manière facile à comprendre
Accédez à l'API de classement Rakuten pour enregistrer le classement de n'importe quelle catégorie au format CSV
Convertir le PDF d'un nouveau cas d'épidémie corona dans la préfecture d'Aichi en CSV
Différentes façons de lire la dernière ligne d'un fichier csv en Python
Je suis tombé sur un code de caractère lors de la conversion de CSV en JSON avec Python
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
Grattage de la nourriture avec python et sortie en CSV
Conversion du système de coordonnées en ECEF et géodésique
Cisco IOS-XE capture les changements dans la table de routage et les messages au service externe