ぐるなびから店舗情報と電話番号を自動で抽出してデータ収集する方法

ぐるなびから飲食店情報を抽出し、データ分析に役立てます。

 

今回はPythonを使って抽出してみます。

htmlのパースにPyQueryを使います。

pip install PyQuery

 

スポンサーリンク

店舗ページのURLからデータ抽出してみる

# -*- coding: utf-8 -*-
from urllib.request import urlopen
from pyquery import PyQuery as pq
from time import sleep
def get_detail(url):
   htmlData = urlopen(url).read()
   html = pq(htmlData)
   print(html('#info-name').text())
   print(html('.number').text())

get_detail("https://r.gnavi.co.jp/g747778/")

 

 

これを実行すると店舗名と電話番号が抽出することが出来ます。

アクセスしたページにある情報はすべて抽出できるのでプログラムを変えると営業時間や総席数なども取得できます。

 

ちなみに、ぐるなびは店舗のIDが連番になっていないので店舗ページから別の店舗ページの遷移ができません。

大量にデータを取得したい場合は、店舗の一覧ページのaタグから各店舗URLを抽出し再度アクセスしデータを抽出しましょう。

一覧からスクレイピングするとこんな感じになります。

スクレイピングのしすぎはDos攻撃と判定されるので、1秒間は開けてからページにアクセスするようにしましょう。

 

データ収集スクレイピング代行を行っています。収集したいデータがありましたら、ご連絡ください。

データ収集、Webスクレイピング代行