Google Map Review 動態爬蟲:如何獲取店家評論內容、圖片以及篩選評論(附Python程式碼)

Clarissa RJ Tai
Marketingdatascience
Mar 18, 2021

--

歡迎回到 Google map review動態網頁爬蟲系列文章~

本篇會帶領各位使用Selenium方法爬取GOOGLE MAP REVIEW的評論資料,例如:評論者、圖片、星級等等,並講解如何選擇評論顯示順序(相關性、時間順序)、選取不同關鍵字進行評論篩選等等!希望各位能收穫滿滿!

若已了解相關概念,可以直接往下滑到最後觀看實作程式碼~

動態網頁爬蟲一切的開始都是從網頁檢視器,觀察觀察再觀察!

更多動態網頁爬蟲相關文章:

  1. 動態網頁爬蟲第一道鎖 — Selenium教學:如何使用Webdriver、send_keys(附Python 程式碼)
  2. 動態網頁爬蟲第二道鎖 — Selenium教學:如何使用find_element(s)取得任何網頁上能看到的內容(附Python 程式碼)

《本文架構》

  1. 獲取單一評論網頁架構
  2. 取得評論內容(評論者名稱、評論次數、星評、評論時間、評論文字內容)
  3. 獲取評論圖片連結
  4. 選擇評論排序方法
  5. 點選關鍵字篩選評論

獲取單一評論網頁架構

在爬取評論資料時,我們同樣要先來破解一下網頁架構,幸好Google的架構比起Instagram及Facebook好閱讀的多,classname也有意義能直接閱讀,爬蟲相對的也簡單許多。

首先,我們找到包含單一評論所有需要的資料的框架,也就是classname為「section-review ripple-container GLOBAL__gm2-body-2」的內容,如圖一所示我們可以使用 beautifulsoup 的 find_all() 函式輕鬆的把所有目前已加載的評論資料抓下來,並將爬取下來的各個評論儲存在列表(List)裡。

解決評論動態加載的問題請看此:Google Map Review 動態爬蟲:如何解決評論動態加載的問題以及在不同視窗間跳轉、滑動

圖一、單一評論內容的網頁框架。

程式碼如下:

之後的內容,我將以第一篇評論為例進行解說。

取得評論內容

接下來就到重頭戲了!就像我一直強調的「看得到的就爬得下來!」,我們要一個一個找到我們需要的內容,並用Selenium的各種方法爬下來。

首先是評論者名稱,使用網頁檢視器點選想要檢視的元素,找到其classname或id,可以使用beautifulsoup或是Selenium的方法來獲取內容,如圖二所示。找到在classname為「section-review-title」的框架下,含有評論者名稱的文字內容,使用find()的方法並搭配.text的屬性,即可輕鬆地抓出評論者名稱。

圖二、使用網頁檢視器找到含有評論者名稱的文字內容。

程式碼如下:

大家爬取下來後,必定會將評論資料儲存為各種形式的資料,並做進階運用及後續分析,所以我不在此講述資料整理的方式了,大家可以彈性運用~

之後獲取評論者稱號、評論次數、星評、評論時間、評論文字內容的方法都大同小異,這裡就不囉嗦的直接提供大家部分程式碼,給大家自行使用~

程式碼如下:

獲取評論圖片連結

接下來,比較困難的是含有圖片的評論,如果要獲取圖片,方法會複雜一些。在Google Map Review的網頁機制裡,超過四張圖片以上的評論會收合,所以在獲取資料之前,我們必須先將按鈕點開(classname為「section-review-photo」),使單一評論的圖片內容完全展開,如圖三所示。

圖三、使用網頁檢視器尋找展開所有圖片的按鈕。

同樣使用網頁檢視器,可以很快的發現,classname為「section-review-photo」的按鈕即是我們需要的目標!

程式碼如下:

這裡使用一個簡單的for迴圈將所有評論圖片依次展開,並找到框架內所有的評論連結,將其放入另一個列表(List)裡。

以上是關於評論資料的獲取,下一部分我將講解如何選擇排序方法,以及如何點選關鍵字篩選評論。

選擇評論排序方法

利用Google Map Review的選單機制,點選評論視窗中間的「排序」按鈕,我們可以依照「最相關」、「最新」、「評論最高」及「評論最低」來進行排序,如圖四所示。

圖四、Google Map的評論選單。

程式碼如下:

點選關鍵字篩選評論

同樣在所有評論的上方,有數個關鍵字的按鈕可以點選,如圖五所示。而使用webdriver點選關鍵字的篩選方法,跟上面講解的選擇評論排序方法是大同小異,其原理也是一樣的。Google Map Review預設會顯示出全部的評論,點選特定關鍵字之後,網頁就會只顯示相關評論了!

圖五、Google Map的評論關鍵字篩選。

程式碼如下:

以上就是本文關於爬取Google map評論資料的內容了,感謝大家的閱讀。

本文完整程式碼在此

如果你喜歡我的文章,請給我一點掌聲。

更多動態網頁爬蟲相關文章:

  1. 動態網頁爬蟲第一道鎖 — Selenium教學:如何使用Webdriver、send_keys(附Python 程式碼)
  2. 動態網頁爬蟲第二道鎖 — Selenium教學:如何使用find_element(s)取得任何網頁上能看到的內容(附Python 程式碼)

作者:戴若竹(臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究有限公司創辦人)

— — — — — — — — — — — — — — — —

往後的文章都會持續在行銷資料科學粉絲專頁上發表喔,喜歡我們就趕緊追蹤吧!

同時再請大家多多follow我們的FB粉絲專頁,我們會在粉專上即時公布最新資訊,讓您重要消息不漏接!

FB粉絲專頁:行銷資料科學

官網:臺灣行銷研究

歡迎加入我們的Telegram獲取即時訊息!https://t.me/marketingdatascience
歡迎加入我們的Line@獲取即時訊息!https://line.me/R/ti/p/%40cde8265r

--

--

Clarissa RJ Tai
Marketingdatascience

"Step by step approaching my dream. Welcome to the world of DATA."