石川県民飲食店応援食事券の使える場所をマップで表示する。

石川県ではコロナ支援でなのか、飲食店応援食事券の事業をおこなっています。

お食事券の使用箇所を調べるには、下記のように調べれるんですが、使う側としては、現在地で近くに使える場所がないかなって調べることが多いのではないでしょうか?このサイト、マップ表示がないんです。

検索結果でお店の名前が出てきたら、そのお店のマップを検索できるようにはなっています。

マップも欲しいと思ったので、マイマップを作成しました。一覧データがあれば、すぐにマップを作れるんですが、一覧データがありませんので、サイトからスクレイピングしてみました。いい練習です。

コードは下記のとおり。めっちゃ短いですし、汚いけど。とりあえず、一覧は取得できます。

#ライブラリのインポート
import requests
from bs4 import BeautifulSoup
import pandas as pd

#応援食事県の検索結果画面のurl
url = "https://ishikawa-inshokuouen.jp/search/?act=search&page="

#一覧の名称、住所のリスト宣言
all_name = []
all_info = []

#ページ数を繰り返す
for number in range(1,340):
#検索結果画面のデータを取得
    html = requests.get(url+str(number))
    soup = BeautifulSoup(html.text,"html.parser")

#Beautifulsoupで検索・分割取得
    name = soup.findAll(class_="p-result2__name")
    for i in name:
        all_name.append(i.text)
#リストにデータを追加
#Beautifulsoupで検索・分割取得
    info = soup.findAll(class_="p-result2__info-address")
    for i in info:
        address = i.text.split("\n")
        all_info.append(address[2].replace("\n",""))
#リストにデータを追加

#簡単に表形式にするために、pandasを使用
df = pd.DataFrame({"名称":all_name,"住所":all_info})

#csvで出力
with open("住所録.csv",mode="w",encoding="shift-jis",newline="",errors="ignore") as f:
    df.to_csv(f)

ここで出力されたcsvデータから、マイマップを作成しました。

最新ではないので、注意が必要ですね。

↓ができたマイマップです。リンク知っている人はだれでも見れる設定になっています。

(住所はすべて確認していないので、間違っているかもしれませんのでご理解ください)

レイヤがわかれていますが、一レイヤの最大行数が2000件みたいなので、2レイヤに分けました。

とりあえず、マイマップができたので、使えるか確認してみまーす。

動的なサイトではなかったので、Seleniumは必要ありませんでした。

他に練習題材ないかな。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中