查看原文
其他

对60万家餐厅统计制作的美食地图,全国人民都爱吃金针菇

二胖并不胖 大数据前沿 2019-02-24

推荐阅读:

为什么说会使用搜索引擎对学习编程很重要

开源一段代码-微信好友分析

这可能是我见过最好的编程指南

两行代码制作一个高逼格的二维码【附教程】

用python挖一挖知乎上宅男们最喜欢的1000个妹子


早就想统计一下某团的美食数据,拖了很久,终于写代码把全国所有的美食数据抓了下来,一共有60万家餐厅

本文以省份为界限统计了各省餐厅的推荐菜,以及餐厅品牌等信息,发现了一个可怕的事实,竟然全国人民都爱吃金针菇(see you tomorrow);也发现了很多具有“地域特色”的菜品。

快来找找你的家乡人民最爱吃的菜吧。


01

统计概况

二胖将60万餐厅在地图上进行了可视化,不过该图并没有达到我的预期效果。我认为60w数据应该比当前壮观,不过从可视化文件看上去餐厅的数量真有点“寥寥无几”,我分析了一下原因,大致是因为:

  1. 数据中的餐厅过度集中,导致可视化后亮点聚拢在一起。从地图上看,高亮地区主要集中在北京、长三角、珠三角和成渝地区。

  2. 数据的经纬度坐标精度不够,导致可视化后亮点很大程度的重叠,也有可能是我抓取的数据被投毒了。

省份维度的统计:

以下两张图分别是地图可视化图和条形图,可以看见,广东省的餐厅最多,大约有6.6万家。

总的来说沿海地区的省份餐厅数量稍微多一些,影响因素主要在于人口、餐饮业、以及互联网的普及程度,因为O2O的餐饮模式,部分地区的店铺并没有挂在网上。



城市维度的分析:

以下两张图是城市维度的可视化,很明显,第一张图中,圆圈越大代表餐厅越多,其中4座超一线城市——北上广深全部上榜。

当然另外两座城市上榜也是毫无疑问的,两座以吃著名、来了就不想走的城市——成都和重庆。

恭喜成都喜提第一!


02

各省餐厅推荐菜

下面我们来看看各地餐厅的热门菜。

首先来看整体情况,全国餐厅中的推荐菜top100:

金针菇三个大字映入眼帘,对,金针菇是排第一的!我真的是好奇为什么,see you tomorrow 有这么大的魅力?除此之外看不出什么地域特色。

先来看看北京和上海,因为北京的外来人口较多,且各个地方的人都有,所以菜品也都比较大众,特色菜并不明显。上海我不太了解,但是在北京,酸梅汤应该是大部分餐厅都有的,麻辣香锅、宫保鸡丁、烤鸭、烤鱼,都是经常吃的。代金券这个梗我以为只有北京有,没想到上海也有哇。因为北京的O2O餐饮很发达,很多餐厅都直接把代金券写进了推荐菜里。


北京:

上海:

再来看看沿海地区,福建和广东最有特色。

福建:从菜品上来看,已经有一些沿海的味道了。

广东:牛肉丸可以理解,金针菇呢?茶位是指喝茶的地方吗?求解释。

看了沿海,我们再来看看极具特色的重庆和四川。

重庆:看着就是一股火锅的味道,是嘞,次火锅儿要次油碟,毛肚要次鲜的,吃火锅要老油,红汤锅底,无骨凤爪,耗儿鱼,鹌鹑蛋,鸭肠,麻辣牛肉不能少,吃完火锅还要吃点西瓜、喝点银耳汤。重庆——一座红彤彤的城市。

四川:和重庆一样,要吃油碟,还要吃红糖糍粑。

海南:文昌鸡是必须的;椰子饭啥味道,没吃过,不过好想吃。海南,有海鲜的味道。

下面,再来看看其他省吧!

安徽:

甘肃:

广西:青菜?

贵州:纸巾乱入了哦。

河北:小蛋糕,很可爱的感觉。

河南:烩面、凉菜、豆腐皮。

黑龙江:黑龙江人是真的很爱吃串,锅包肉和提拉米苏我是服的。

湖北:

湖南:湖南人民有点辣哦!

吉林:

江苏:

江西:

辽宁:

内蒙古:真的超级多蛋糕店哦!还有牛羊肉!

宁夏:

青海:

山东:

山西:

陕西:

天津:也是代金券的节奏哦。

西藏:好想吃下藏式火锅哦。

新疆:

云南:洋芋,好亲切,其实就是土豆的意思。

浙江:


03

各省霸屏店铺统计

还是先来看看全国的概况:连锁店霸屏了,说实话,我还真不知道正新鸡排~

有一种预感就是接下来各省都要被正新鸡排和肯德基霸屏了,当然也会有例外。

就先拿先拿北上广来说,北京、上海、广东的外来人口相对较多,吃的东西应该比较“大杂烩”,不过还是很能看出特点,

北京:北京的呷哺呷哺到处可见,二胖也吃过好多好多次了,金凤成祥、虾吃虾涮、吉野家、张亮麻辣烫,这都是围绕帝都人民红店。

还有嘉和一品,简直是二胖点外卖的专用餐厅。奇怪的是,在北京没正新鸡排没上榜。



上海:正新鸡排妥妥第一,奶茶店也不少,甜点偏多。

广东:正新鸡排、肯德基、华莱士通通上榜,当然少不了的是各种茶。感觉广东人民的生活很是精致。

再来看看极具特色的重庆和四川:

重庆:一只酸奶牛和一口酸牛奶?从来没听过,求解释。

四川:还是一只酸奶牛,可能是重庆四川人民刚刚吃完火锅要喝点奶润润喉。

钢管厂五区小郡肝串串香,熟悉的感觉。

黑龙江:秋林里道斯妥妥上榜,哈哈,二胖也是喝过格瓦斯吃过红肠的人。

吉林:这个很有意思啊,辣怪鸭和辣小鸭是什么关系?

我们再来看看福建和海南。

福建:向阳坊是什么?感觉很具地方特色。

海南:椰子鸡很好吃吗?二胖还看到了重庆刘一手火锅,哈哈。

安徽:

甘肃:词云结果挺有意思的,店铺名字很独特。

广西:

贵州:

河北:

河南:

湖北:

湖南:前文所讲的辣椒炒肉是哪个餐厅卖的,怎么看不出来了呢?

江苏:

江西:

辽宁:

内蒙古:

宁夏:查了下,麦尔乐是一家蛋糕店。

青海:

山东:说真的,重庆鸡公煲并不是重庆菜,而是一个叫做张重庆的人发明的,重庆就这样被碰瓷了。

山西:

陕西:

天津:

西藏:

新疆:

云南:

浙江:


04

写在最后

按惯例,下面是技术实现讲解:

01

数据抓取

本次数据抓取同样采用的是scrapy。

难点1:分析阶段,要想拿到全国全量的数据,必须要以街区为单位。主要原因是每个列表页默认只展示30页,每页大约20条消息,如果我们以城市维度去抓取,相当于每个城市只能至多拿到600个店铺的消息。

那按街区抓取是什么意思?

举个例子:

北京市-海淀区-双榆树

分别对应了:

市级行政单位-区级行政单位-街区

二胖找了好多个繁华的街区查看,每个街区店铺的列表都没有超过30页,这就保证我们能拿到全量数据。


难点2:列表页只能拿到店铺的基础信息,还需要抓取店铺的详情页面,共超过60万个页面,IP封禁厉害,需要有足够多的ip和代理随机算法。

02

可视化

本次可视化一如既往的应用echarts。

具体实现和相关的代码二胖在文章《开源一段代码-微信好友分析》中已录视频进行讲解,感兴趣的朋友可以参考那篇文章,所用到的技术是一致的。

唯一一点不同是,这里的60万餐厅全量可视化用pyecharts实现不了。因为pyecharts的原理是利用python生成html和JavaScript文件,直接将数据写入html文本,生成后有几百MB的大小,打开的时候会导致浏览器崩溃,所以这里二胖是用的原生的JavaScript读取Json数据文件实现。



更多精彩文章,请长按扫描下方这个会动的二维码。

长按二维码扫描

关注二胖了解更多!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存