[PYTHON] Verschrotten Sie die Liste der Go To EAT-Mitgliedsspeicher in der Präfektur Niigata und konvertieren Sie sie in CSV

Wurde letztes Mal veröffentlicht

Konvertieren Sie die PDF-Liste der Go To EAT-Mitglieder in der Präfektur Niigata in CSV https://qiita.com/barobaro/items/74fb5bdedbf1ae7267a0

PDF kann nicht gefunden werden. Erstellen Sie daher eine Liste durch Scraping

Schaben

import re
import time

import requests
from bs4 import BeautifulSoup

url = "https://niigata-gte.com/shop/"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
}

result = []

while True:

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

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

    for shop in soup.select("div#result > div.cont"):

        data = {}

        data["Händlercode"] = (
            shop.select_one("div.no").get_text(strip=True).split(":", 1)[-1]
        )

        span = shop.select("div.tag > span")

        data["Bereich"] = span[0].get_text(strip=True)
        data["Genre"] = span[1].get_text(strip=True)

        if len(span) > 2:
            temp = {i.get("alt"): "○" for i in span[2].select("img")}
            data.update(temp)

        h4 = shop.select_one("h4")

        data["Speichername"] = h4.get_text(strip=True)

        if h4.select_one("a"):

            link = h4.a.get("href")

            if link:
                data["Startseite"] = link

        p_add = shop.select_one("p.add").contents

        postcode, address = p_add[0].split(sep=None, maxsplit=1)

        #Extrahieren Sie Längen- und Breitengrad aus dem Google Map-Link
        gps = re.search(r"(?<=@)(.+?),(.+?)(?=,\d{1,2}z)", p_add[1].a.get("href"))

        if gps:
            data["Breite"] = float(gps.group(1))
            data["Längengrad"] = float(gps.group(2))

        data["Postleitzahl"] = postcode.strip()
        data["Lage"] = address.strip()

        data["Telefonnummer"] = shop.select_one("p.tel").get_text(strip=True)

        result.append(data)

    tag = soup.select_one("li.next")

    if tag:

        m = re.search("https://niigata-gte.com/shop/page/\d+/", tag.a.get("onclick"))

        if m:
            url = m.group(0)

    else:
        break

    time.sleep(3)

result

In CSV konvertieren

import pandas as pd

df = pd.DataFrame(result)

df.index += 1

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

Recommended Posts

Verschrotten Sie die Liste der Go To EAT-Mitgliedsspeicher in der Präfektur Niigata und konvertieren Sie sie in CSV
Verschrotten Sie die Liste der Go To EAT-Mitgliedsgeschäfte in der Präfektur Fukuoka und konvertieren Sie sie in CSV
Scraping Gehen Sie zu EAT-Mitgliedsgeschäften in der Präfektur Osaka und konvertieren Sie zu CSV
Konvertieren Sie PDF-Dateien von Go To EAT-Mitgliedsgeschäften in der Präfektur Ishikawa in CSV
Konvertieren Sie PDFs der verfügbaren Geschäfte von Go To EAT in der Präfektur Kagoshima in CSV
Konvertieren Sie das PDF der Go To EAT-Mitgliedergeschäftsliste in der Präfektur Kumamoto in CSV
PDF der Präfektur Chiba konvertieren Gehe zur EAT-Mitgliedergeschäftsliste in CSV (Befehl)
Konvertieren Sie das PDF der Händlerliste der Go To Eat Hokkaido-Kampagne in CSV
Prognostizieren Sie den Stromverbrauch in 2 Tagen und veröffentlichen Sie ihn in CSV
Die Geschichte, wie ein Geschäft BOT (AI LINE BOT) nach Go To EAT in der Präfektur Chiba durchsucht (1)
[Python] Vorsichtsmaßnahmen beim Erfassen von Daten durch Scraping und Einfügen in die Liste
Versuchen Sie auch bei der Konvertierung von CSV in Leerzeichenbegrenzer ernsthaft, Eingabe / Ausgabe und Regeln zu trennen
Lesen Sie die CSV-Datei und zeigen Sie sie im Browser an
Stolpern Sie beim Konvertieren der bidirektionalen Liste in JSON in Go
PDF-Kratzer über den Status testpositiver Personen in jeder Präfektur des Ministeriums für Gesundheit, Arbeit und Soziales
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Scraping Excel-Datei der Liste der Geschäfte, die regionale gemeinsame Gutscheine verarbeiten
Ich habe es in der Sprache Go geschrieben, um das SOLID-Prinzip zu verstehen
[Python] Die Rolle des Sterns vor der Variablen. Teilen Sie den Eingabewert und weisen Sie ihn einer Variablen zu
Es ist überraschend mühsam, eine Liste mit dem Datum und der Uhrzeit der letzten Anmeldung von Arbeitsbereichen abzurufen
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
[Python / Jupyter] Übersetzen Sie den Kommentar des in die Zwischenablage kopierten Programms und fügen Sie ihn in eine neue Zelle ein.
Verwenden Sie Cloud Dataflow, um das Ziel dynamisch entsprechend dem Wert der Daten zu ändern und in GCS zu speichern
Ein leicht verständlicher Vergleich der grundlegenden Grammatik von Python und Go
Derjenige, der die CSV-Datei teilt, liest und parallel verarbeitet
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
Klicken Sie auf die Rakuten-Ranking-API, um das Ranking einer beliebigen Kategorie in CSV zu speichern
Konvertieren Sie das PDF des neuen Corona-Ausbruchs in der Präfektur Aichi in CSV
Ich möchte CSV Zeile für Zeile lesen, während ich den Feldtyp konvertiere (während der Fortschrittsbalken angezeigt wird) und ihn verarbeiten.
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
Eine Geschichte über einen Ingenieur, der das Emo der Kryptographie bemerkt hat und versucht, es in Python zu implementieren
Suchen Sie es in der Warteschlange und bearbeiten Sie es
Verschiedene Möglichkeiten, die letzte Zeile einer CSV-Datei in Python zu lesen
So übergeben Sie das Ergebnis der Ausführung eines Shell-Befehls in einer Liste in Python
Verarbeitung (Python) Diagramm der Koordinaten der Liste Geben Sie an, wie oft in draw ()
Wie kann man in Go so etwas wie eine Liste von void * (oder Variantentypen) erreichen?
Bei der Konvertierung von CSV in JSON mit Python bin ich auf einen Zeichencode gestoßen
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Verwenden Sie Pillow, um das Bild transparent zu machen und nur einen Teil davon zu überlagern
Die Niederschlagsdaten der Meteorologischen Agentur kratzen und auf M5Stack anzeigen
[Python] Scannen Sie den Ordner einschließlich der Unterordner → Exportieren Sie die Dateiliste in CSV
Ich möchte eine Liste der WebDAV-Dateien im Modul Anfragen anzeigen
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis