J'ai essayé de chercher sur mon smartphone pour trouver du riz dans un pays étrange, mais ...
――Il est difficile de trouver un restaurant très apprécié dans la liste s'il s'agit d'un journal alimentaire ――S'il s'agit d'une carte google, vous ne pouvez pas la comprendre à moins de cliquer sur chaque candidat recherché et de consulter les avis. ――Il est difficile de dire si le site d'avis est vraiment délicieux car il n'écrit pas d'avis négatifs.
Même si vous sortez votre smartphone et essayez de trouver un délicieux restaurant dans la ville, c'est difficile car vous ne pouvez pas trouver un restaurant très bien noté en un coup d'œil. *** Je veux connaître les magasins les mieux notés autour de mon emplacement actuel! *** *** Dans un tel cas, le plan de magasin très apprécié présenté sur cette page est pratique.
En grattant, nous collectons des informations sur les boutiques présentées dans 100 Famous Eating Log Shops. En important ces informations dans Google My Map, nous créerons un plan de magasin très apprécié.
Extraire des données du Web et les convertir en données structurées pouvant être analysées s'appelle du scraping, mais il y a quelques mises en garde.
Si les données collectées contiennent du matériel protégé par le droit d'auteur, le droit d'auteur doit être pris en compte. Ne communiquez pas les données collectées par grattage à des tiers et ne démarrez pas d'entreprise sur la base des données collectées. En revanche, il semble que la copie pour un usage privé soit autorisée.
Dans de nombreux cas, vous enverrez probablement plusieurs demandes au serveur Web pour collecter des données structurées. Sachez que l'envoi d'un grand nombre de requêtes dans un court laps de temps peut entraîner une crevaison du serveur Web. Dans le passé, il y avait un précédent d'arrestation involontaire.
Veuillez lire attentivement les conditions d'utilisation car elles peuvent être grattantes ou interdites. Le site Web contient également robots.txt, un fichier texte permettant de contrôler le robot d'exploration. J'omettrai comment vérifier ce fichier, mais avant de gratter, vérifiez le robot.txt du site Web cible et suivez le contenu décrit.
J'ai brièvement expliqué les points ci-dessus, mais il est fort possible que ce ne soit pas suffisant car il s'agit d'une compilation originale. Faites vos propres recherches pour vous assurer qu'il n'y a aucun problème avant de gratter.
L'implémentation utilise python et sa bibliothèque, BeautifulSoup. Ce sont les plus importants en matière de grattage, ont de nombreux articles de référence et sont faciles à manipuler même pour les débutants, alors je les ai choisis.
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)
Ce code correspond à 100 magasins célèbres 2019. Lorsque j'ai vérifié Hyakumeiten 2020, je n'ai pas pu obtenir les données car la structure de la page Web a changé.
Tout ce que vous avez à faire est d'installer python et d'exécuter ce script. En exécutant ce code, vous pouvez obtenir les données des magasins Tonkatsu sélectionnés comme 100 magasins célèbres avec csv. Si vous voulez obtenir les données de la boulette, vous pouvez changer la fin de l'url en gyoza et le tonkatsu de la dernière ligne en gyoza.
Tout ce que vous avez à faire est d'importer le csv généré dans My Maps de Google. Après avoir importé des csv de tous les genres, 100 magasins célèbres doivent être tracés comme ci-dessous.
De cette manière, en grattant, nous avons pu extraire les informations de magasin introduites dans les 100 restaurants célèbres de Eating Log sous forme de données structurées et les cartographier. Puisque Ma carte peut être consultée sur Andoroid, vous pouvez trouver instantanément les 100 magasins célèbres les plus proches de votre emplacement actuel.
C'est un script que j'ai fait il y a pas mal de temps, mais quand je le regarde à nouveau, c'est un code tellement terrible qu'être un débutant en python n'est pas du tout une excuse ... En fait, il y a un script qui permet de récupérer le genre à partir de l'argument run-time, mais j'ai arrêté car c'est un niveau qui hésite à publier. Si ce qui suit est résolu, il peut être publié sur github.
--Fichier d'exécution --Enregistrement --Lire l'URL du fichier de configuration
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