欢迎访问
这是个实用的Python网站

等疫情过后,我想去吃火锅,用Python分析性价比较高的火锅店

距离我上次吃火锅已经过去 3 个月零 7 天了,想想就馋的流口水。眼看着疫情形势逐渐好转,我这个想吃火锅的心又开始躁动起来了,为了吃的爽吃的过瘾,我决定先用 Python 分析一波美团上性价比高的火锅店。

第一步:打开美团,找到数据接口

打开美团地址:https://bj.meituan.com/s/火锅

先登录美团,然后打开流量分析工具,找到数据接口。

找到1个返回格式为json的文件,里面包含当页的火锅店信息。请求参数为:

其中uuid和userid均为定值,limit表示每次返回32条数据,offset为当页返回火锅店信息的累加值,通过变化offset可变换页数。

第二步:Python模拟请求获得数据

很简单的 requests 模拟请求,要带上 cookie 信息。

这里我用 session 会话的形式模拟请求的,也可以不用,看个人习惯,然后大家可以发现我在 header 中加了Referer 值,为什么要加这个值呢?

Referer 会告诉服务器我是从哪个页面链接过来的,如果不加的话,美团服务器会送你个 443,这是个大坑。

第三步;将我们需要的信息保存到表格中

1.用 xlwt 创建1个 worksheet

2.用 xlrd 打开表格,取该表内第一个 sheet,然后判断该表格已写入多少行。

3.分别写入火锅店“id”“店名”“评分”“最低价”“人均消费”“评论数”

4.看看效果

总共有 9 百多家,应该是比往常少了。

第四步:用python分析一下哪家性价比最高

我们在美团上选火锅店一般参考评分、人均消费、评价等因素,下面用 Python 来详细分析一下到底哪家的性价最高。
首先从表格中取出数据。

1.分析星级评价整体情况

计算每个评分的数量

Matplotlib画图

从图中可以看出,评分为 5.0 的店家最多,有 184 家,其次是 4.0 评分,有 143 家,大部分店家评分 3.5~4.5 之间。

2.分析每个评分的人均消费情况

主要是将相同评分的人均消费累加,然后取平均值,代码如下:

画图,代码类似上步:

结果展示:

从上图来看,各个分数段人均消费都在 100 元左右,总体还算比较亲民,整个价格图呈“W”形状,据我初步分析,左边的峰值有可能是定价比较高才导致评分比较低;中间的峰值定价虽然高,但是肯定是质量比左边的高些,所以评分稍微高些右边的峰值自然是价格高、质量又高的店家了。

3.分析各个店家评价数量的总体趋势

主要分析所有店家评论数量分布趋势

从散点图分布我们可以看出,大部分店家的评论数量都在2000以下,但是有少量的评论很高甚至过万的,这些点或者是网红店,或者是老字号。

4.分析不同评论数量之间平均评分的关系

代码如下:

画图:

效果展示:

从图中我们可以看出,评价数量多的店有可能评分很低,评论数量少的店也有可能评分很高。

综上所述,我们应该选择那些评分比较高、评论数量也相对较高的店。

疫情快些结束吧,店都选好了,就等着去吃了。

赞(2) 打赏
未经允许不得转载:转载请到公众号「Python知识圈」联系作者授权!Python知识圈 » 等疫情过后,我想去吃火锅,用Python分析性价比较高的火锅店