[Day20] Google Map 评论爬虫详细教学

前一篇有提到url的连结不是Google店家页面的连结,需要透过Chrome的开发者工具才能找到~
以下是取得评论来源网址步骤:

  1. 进入店家Google Map页面按F12 -> 选Network -> 选Fetch/XHR
    https://ithelp.ithome.com.tw/upload/images/20210919/20133286g7K9091Me1.png
  2. 点评论 -> 将评论往下滑,会看到每次载入新留言时右方会出现重复的listentitiesreviews
    https://ithelp.ithome.com.tw/upload/images/20210920/20133286h2POVzTGyn.png
  3. 点开listentitiesreviews,红框的连结就是上篇的url罗~
    https://ithelp.ithome.com.tw/upload/images/20210920/20133286fQKOShOGQT.png

我们得到这个连结是: (第一个listentitiesreviews)
https://www.google.com.tw/maps/preview/review/listentitiesreviews?authuser=0&hl=zh-TW&gl=tw&pb=!1m2!1y3765762734390772041!2y17055821615375049737!2m2!1i10!2i10!3e1!4m5!3b1!4b1!5b1!6b1!7b1!5m2!1sBmJHYfTGM5mLr7wP8ouDmAI!7e81

但是这个连结只有前十条留言的资料! 所以我们要找出之後连结的规律,
接着继续滑评论留言,找到第二个listentitiesreviews点开:
https://www.google.com.tw/maps/preview/review/listentitiesreviews?authuser=0&hl=zh-TW&gl=tw&pb=!1m2!1y3765762734390772041!2y17055821615375049737!2m2!1i20!2i10!3e1!4m5!3b1!4b1!5b1!6b1!7b1!5m2!1sBmJHYfTGM5mLr7wP8ouDmAI!7e81

从上面可以发现只有第一个连结的1i10和第二个连结的1i20不同,
之後观察第三个listentitiesreviews,可以发现相同位置地方变成1i30
所以只要把1i [数字] 0设变数就可以抓到全部评论罗~

那有了url後,要怎麽知道留言、姓名、评分星数在哪里呢?

  1. 点选Preview,发现第2层的内容里面有评论的资讯
    https://ithelp.ithome.com.tw/upload/images/20210920/20133286Li8afhtLex.png
    表示评论的部分在url的第2层里。

  2. 接着点开第一个人(第0层)的留言,可以发现留言时间在第1层、留言内容在第3层、星星数在第4层
    https://ithelp.ithome.com.tw/upload/images/20210920/201332866wXb1spIkR.png

知道这些资讯,我们就可以写程序来抓Google Map评论的指定内容了喔~


<<:  Day-6:开发专案为什麽写测试?

>>:  Day 12 - 安装(二)Topology

唤醒与生俱来的数学力 (2) 顺序 & 因果

由於昨天晚上听了明就仁波切的分享,今天原本想读 In Love with the World,但读了...

Week40 - 各种安全性演算法的应用 - 窜改、抵赖实作 [高智能方程序系列]

本文章同时发布於: Medium iT 邦帮忙 大家好,继上次Week39 - 各种安全性演算法的应...

[Day11]程序菜鸟自学C++资料结构演算法 – 伫 列Queue

前言:上一篇结束了堆叠的实作,今天要来介绍新东西「伫列」。 伫列的特性:伫列和堆叠非常类似,同样都是...

Day23-TypeScript(TS)函式(Function)的选择性参数(Optional Parameter)

今天要来介绍TypeScript(TS)函式(Function)的选择性参数(Optional Pa...

[Day 25] Reactive Programming - Spring WebFlux(R2DBC)

前言 在上一个范例中,是写死回传的内容,显然在现实生活中应该是不会有公司让你可以这样做的,而当我们的...