python スクレイピング セブン-イレブン店名と住所をgooglemapにプロット

神奈川県のセブンイレブンの配置を俯瞰的に見てグループ分けする必要ができたので、

店舗のデータをWEB上からゲットし(スクレイピングし)、googlemapにプロットした。

スクレイピングしたサイトは、ナビタイムのサイトにした。

本家は、ページを遷移してもURLの表示が変わらないので、中でなにか動いているのだろう。

[python]
from urllib import request  # urllib.requestモジュールをインポート
from bs4 import BeautifulSoup  # BeautifulSoupクラスをインポート



def gettext():

    response = request.urlopen(url)
    soup = BeautifulSoup(response)
    response.close()

    # 得られたsoupオブジェクトを操作していく
 
    for t in soup.find_all(class_="list_item_frame"):
        texts=t.get_text()
        #print(texts.strip())#改行ができてしまう
        print(texts.replace('\n',''))#改行はなくなるが全項目1行にくっついてしまう


url = 'https://www.navitime.co.jp/category/0201001001/14'
gettext()#1ページ目はURLの体裁が違う
#print(url)#URL確認
for i in range(2,51):#神奈川県は50ページまで有る
    url = 'https://www.navitime.co.jp/category/0201001001/14/?page={}'.format(i)
    #print(url)#URLを出力してみる
    gettext()#テキストの出力

[/python]
[text]
セブンイレブン 茅ヶ崎本村3丁目店神奈川県茅ヶ崎市本村3-5-57[地図]
セブンイレブン 横浜上野町店神奈川県横浜市中区上野町2-95[地図]
セブンイレブン 本藤沢2丁目店神奈川県藤沢市本藤沢2-12-5[地図]
セブンイレブン 横浜鳥浜町南店神奈川県横浜市金沢区鳥浜町14-21[地図]
セブンイレブン 横浜日野店神奈川県横浜市港南区日野5-20-14[地図]
1000件続く
[/text]

1店舗の情報が、1行にくっついてしまったので、エクセルで分割する。

メニューバー[データ][区切り位置]

こんなことを何回か繰り返すと、整形したデータになる。

CSVにしてgooglemap

[三][マイプレイス][マイマップ][地図を作成]

新規のマイマップが作成されるので

[インポート]先に作ったデータをドロップ。

アイコンや色は自由に変えられる。

縮尺もいつもの様にグルグル動かせる。

もしも手と紙でこれをやったら徹夜だろうな~

ちなみに構想から2時間くらい。

コメント

タイトルとURLをコピーしました