距离我上次吃火锅已经过去 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.分析不同评论数量之间平均评分的关系
代码如下:
画图:
效果展示:
从图中我们可以看出,评价数量多的店有可能评分很低,评论数量少的店也有可能评分很高。
综上所述,我们应该选择那些评分比较高、评论数量也相对较高的店。
疫情快些结束吧,店都选好了,就等着去吃了。