Python – 使用 Google Map API (2) – 解析結果

解析雷達搜尋傳回來的 json 物件

上一篇 Python – 使用Google Map API(1) – 雷達搜尋 中最後提到,將回傳的內容print出來後得到下方的結果:

首先我們把這些內容丟到 json editor 來看看:

*線上 json editor 的版本很多,我就用我習慣的平台來做。

1
(圖1)複製貼上後的樣子。
2
(圖2)按下左上放自動整理按鈕之後。

整理完之後再按下中間的統計按鈕,會看到有三個根元素(圖3),分別是「html attributions」、「status」、「results」。(這是雷達搜尋的結果,其他搜尋方式可能會有所不同。)

其中要拿來解析的部分就是 results,從圖3可以看到,results 是一個 list,裡面共有12個項目,表示我們在上一篇文章裡面執行:以台北 101 為中間、半徑 100 公尺、被標記為 cafe 的地點共有 12 個。

3
(圖3)按下統計按鈕之後可看到有三個根元素。
4
(圖4)進一步打開results可以看到裡面的細項。

進一步打開 results,可以看到裡面是 12 個 dict 格式 (圖4)。

每一個 dict 內有 4 個項目,其中我們接下來會用到的只有「place_id」。

根據官方文件的說明,「id」跟「reference」都已經被「place_id」取代,而「geometry」則是下一個步驟會再出現一次,所以也暫時不用裡他。


看到這邊也許會有疑惑。

不是說會找出附近的咖啡店嗎?怎麼解析到目前為止只看到一堆編碼?

其實有別的方法可以直接解出店名跟地址等等的資料,但為什麼我要從雷達搜尋開始呢?

因為雷達搜尋一次可以回傳最多 200 個結果,也就是說你可以調整你的半徑範圍,在結果小於兩百的情況下,理論上你可以找到這個範圍內,Google 所標記的所有咖啡廳。

而其他功能,雖然可以直接給你詳細資料,但一次只能給你 20 個結果,要繼續往下看,要代入一個叫做「pagetoken」的參數,Google 就會給你再往下的 20 筆。

兩者的不同在於,每一天免費搜尋的次數是有限制的,當然一次拿到比較多筆比較好。

不過,巴特,西卡西…

Google官方部落格說,因為這個功能沒人要用,所以要在 2018 年 6 月 30 日關閉了,不過大家不用擔心,有另外的功能可以取代。

雖然說別的功能確實可以完全取代雷達搜群,但這其實就是一個變相漲價,因為別的功能一次只能回傳 20 筆,用量大的人勢必要繳一些錢給 Google。

所以如果你有需求的朋友,請快點在 2018/06/30 之前把你要的資料都抓下來吧。

下一篇我們來說,如何用「place_id」取得詳細的地點(店家)資料。

對「Python – 使用 Google Map API (2) – 解析結果」的一則回應

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s