Ich habe versucht, auf meinem Smartphone nach Reis in einem fremden Land zu suchen, aber ...
――Es ist schwierig, ein hoch bewertetes Restaurant aus der Liste zu finden, wenn es sich um ein Lebensmittelprotokoll handelt ――Wenn es sich um eine Google Map handelt, können Sie sie nur verstehen, wenn Sie auf jeden Suchkandidaten klicken und sich die Bewertungen ansehen. ――Es ist schwer zu sagen, ob die Bewertungsseite wirklich lecker ist, da sie keine negativen Meinungen schreibt.
Selbst wenn Sie Ihr Smartphone herausnehmen und versuchen, ein köstliches Restaurant in der Stadt zu finden, ist es schwierig, weil Sie auf einen Blick kein hoch bewertetes Restaurant finden können. *** Ich möchte die hoch bewerteten Geschäfte rund um meinen aktuellen Standort kennenlernen! *** *** In diesem Fall ist die auf dieser Seite vorgestellte hoch bewertete Shop-Karte praktisch.
Durch das Scraping sammeln wir Informationen zu den Geschäften, die in 100 Famous Eating Log Shops eingeführt wurden. Durch den Import dieser Informationen in Google My Map erstellen wir eine hoch bewertete Shop-Karte.
Das Extrahieren von Daten aus dem Web und das Konvertieren in strukturierte Daten, die analysiert werden können, wird als Scraping bezeichnet. Es gibt jedoch einige Einschränkungen.
Wenn die gesammelten Daten urheberrechtlich geschütztes Material enthalten, muss das Urheberrecht berücksichtigt werden. Geben Sie die gesammelten Daten nicht durch Scraping an andere weiter und gründen Sie kein Unternehmen, das auf den gesammelten Daten basiert. Andererseits scheint das Kopieren für den privaten Gebrauch erlaubt zu sein.
In vielen Fällen senden Sie wahrscheinlich mehrere Anforderungen an den Webserver, um strukturierte Daten zu erfassen. Beachten Sie, dass das Senden einer großen Anzahl von Anforderungen in kurzer Zeit zum Ausfall des Webservers führen kann. In der Vergangenheit gab es einen Präzedenzfall für die unbeabsichtigte Verhaftung.
Bitte lesen Sie die Nutzungsbedingungen sorgfältig durch, da sie möglicherweise verkratzen oder verboten sind. Die Website enthält auch robots.txt, eine Textdatei zur Steuerung des Crawlers. Ich werde das Überprüfen dieser Datei unterlassen, aber vor dem Scraping die Datei robot.txt der Zielwebsite überprüfen und den beschriebenen Inhalten folgen.
Ich habe die obigen Punkte kurz erläutert, aber es ist sehr wahrscheinlich, dass dies nicht ausreicht, da es sich um eine Originalkompilation handelt. Machen Sie Ihre eigenen Recherchen, um sicherzustellen, dass es keine Probleme gibt, bevor Sie kratzen.
Die Implementierung verwendet Python und seine Bibliothek BeautifulSoup. Diese sind die wichtigsten beim Schaben, haben viele Referenzartikel und sind selbst für Anfänger einfach zu handhaben, deshalb habe ich sie ausgewählt.
main.py
import requests
from bs4 import BeautifulSoup
from time import sleep
import pandas
url = "https://award.tabelog.com/hyakumeiten/tonkatsu"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
shoplinks = soup.findAll('a', class_='list-shop__link-page')
rowdata = []
for shoplink in shoplinks:
url = shoplink.get("href")
rshop = requests.get(url)
soup = BeautifulSoup(rshop.content, "html.parser")
print("------------------")
print(url)
shopname = soup.find(
"div", class_="rdheader-rstname").find("h2").find("span")
print(shopname)
if shopname is not None:
shopname = shopname.get_text().strip()
address = soup.find("p", class_="rstinfo-table__address")
if address is not None:
address = address.get_text()
print(address)
point = soup.find("span", class_="rdheader-rating__score-val-dtl")
if point is not None:
point = point.get_text().strip()
print(point)
regholiday = soup.find("dd", class_="rdheader-subinfo__closed-text")
if regholiday is not None:
regholiday = regholiday.get_text().strip()[0:10]
print(regholiday)
rowdata.append([shopname, address, point, regholiday, url])
sleep(5)
print(rowdata)
df = pandas.DataFrame(
rowdata, columns=["shopname", "address", "point", "regular holiday", "url"])
df.to_csv("tonkatsu" + ".csv", index=False)
Dieser Code entspricht 100 Famous Stores 2019. Als ich Hyakumeiten 2020 überprüft habe, konnte ich die Daten nicht abrufen, da sich die Struktur der Webseite geändert hat.
Alles was Sie tun müssen, ist Python zu installieren und dieses Skript auszuführen. Durch Ausführen dieses Codes können Sie die Daten von Tonkatsu-Geschäften abrufen, die als 100 berühmte Geschäfte mit CSV ausgewählt wurden. Wenn Sie die Knödeldaten erhalten möchten, können Sie das Ende der URL in Gyoza und das Tonkatsu in der letzten Zeile in Gyoza ändern.
Sie müssen lediglich die generierte CSV in Googles "Meine Karten" importieren. Nach dem Import von CSV aller Genres sollten 100 berühmte Geschäfte wie folgt dargestellt werden.
Auf diese Weise konnten wir durch Scraping die in den 100 berühmten Restaurants in Eating Log eingeführten Geschäftsinformationen als strukturierte Daten extrahieren und abbilden. Da My Map auf Andoroid angezeigt werden kann, können Sie sofort die 100 berühmten Geschäfte finden, die Ihrem aktuellen Standort am nächsten liegen.
Es ist ein Skript, das ich vor einiger Zeit erstellt habe, aber wenn ich es mir noch einmal ansehe, ist es ein so schrecklicher Code, dass es überhaupt keine Entschuldigung ist, ein Python-Anfänger zu sein ... Eigentlich gibt es ein Skript, mit dem Sie das Genre aus dem Laufzeitargument abrufen können, aber ich habe aufgehört, weil es eine Ebene ist, deren Veröffentlichung zögert. Wenn das Folgende behoben ist, kann es auf github veröffentlicht werden.
https://docs.pyq.jp/column/crawler.html https://www.cric.or.jp/qa/hajime/hajime8.html https://ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8%AD%E5%A4%AE%E5%9B%B3%E6%9B%B8%E9%A4%A8%E4%BA%8B%E4%BB%B6
Recommended Posts