各位大大好
自己最近需要研究某品牌在幾個國家境內的店舖數量
因此想說用 Google map 應該可以達到
不過目前遇到點小問題
目前我使用的方式如下
import googlemaps
gmaps = googlemaps.Client(key=my_key)
detail_info = list()
shops = list()
# 爬取店家資訊
res = gmaps.places(query='無印良品', language='zh-TW', region='tw')
detail_info.extend(res['results'])
time.sleep(2)
while "next_page_token" in res:
print('Go to next page...')
next_page_token = res['next_page_token']
res = gmaps.places(query='無印良品', language='zh-TW', region='tw', page_token=next_page_token)
detail_info.extend(res['results'])
time.sleep(2)
# Print 出結果
for index, each in enumerate(detail_info):
shops.append([each['name'], each['formatted_address']])
print(index + 1)
print(each['name'])
print(each['formatted_address'])
print("============================")
顯示結果只有大概 35 間分店,如下:
但實際到無印良品光網看,台灣境內應該有快 50 家左右的分店,而且顯示結果幾乎只在北部地區,完全沒有南部的,這樣有點困擾,看這狀況,感覺還是需要自己設定座標與半徑範圍。
請問各位大大,有沒有甚麼方法可以直接找出境內(ex. 台灣、美國、澳洲)的某品牌所有店家資訊呢?還是說都必須自行調整座標?
Google 上面的店家地址, 都是要由店家自主去更新的, Google 沒有強制的公權力, 可以強迫所有店家都主動來登記真實地址....
所以只要分店管理者沒上去登記, Google 地圖就不會有資料...
他的商家資訊本來就不是可靠的資料源, 依賴她不是個好方法...
你要不要直接找總公司問會比較快?
如果你在網頁上搜尋"無印良品"會在你目前的所在地方,顯示幾公里內所有的無印良品.
而不會顯示台灣境內所有的,或許你在搜尋時可以改變定位位置來做可能可以達到你想要的功能
在Google MAP網頁搜尋無印良品
也只會顯示所在地附近的店家,不會是全台灣的
我猜可能跟定位有關,不然你就試試把電腦定位功能關掉再試試
不過誠如ray大所說,Google MAP的店家資料要自己建立與更新
若店家未建立或更新,資料還是會有遺漏跟錯誤的
基本上還是要官網的會比較準確
如果要準確一點的話可以換個方式,寫一個爬蟲去撈官方網站的資料然後做排程
爬蟲的排程系統目前有現成的專案可以用
https://github.com/crawlab-team/crawlab