一名程序员用爬虫技术分析了福州7740家餐厅数据

上一篇网页爬虫分析博客意外在知乎获得了过千的点赞《有哪些网站用爬虫爬取能得到很有价值的数据?》(小编注:有兴趣可以上知乎查看),坚定了我继续玩爬虫的决心。

  这次爬点啥好?作为一个伪吃货(很想吃但有很多忌口,同时又吃不胖),怀着为福州吃货服务的理想,我决定:这次我来爬爬餐厅。

  源代码

  Talk is cheap, show me the code. 依照惯例,先贴代码。https://github.com/SmileXie/dianping_crawler编码中用到了几个Python库:Requests, Beautifulsoup, MySQL Python connector. 数据库用到了MySQL。

  数据样本

  数据样本来源于大家熟知的“大众点评”,收集了其中7740家福州餐厅的数据。其中,包含以下特征之一的数据,我认为是无效的数据,予以剔除:

  • 点评星级为0

  • 人均消费大于3000

  统计分析

  每个统计结果之前,我都会把对应的SQL查询语句附上,供较真儿的程序员们分析。

  福州最贵餐厅TOP20

  把所有餐厅按人均消费排序:

mysql> select id, name, branch_name, price, category, district from ResTable order by price desc limit 20;

  “福州最贵餐厅”称号被“和怀石料理”收入囊中,人均消费505元让我等屌丝望而确步。人均消费400+的餐厅有八家。

  TOP20中,日本料理分类占得最多。左海/西湖公园、五四路商业区、五一广场是TOP20高端消费餐厅较为聚集的商圈。

  比较尴尬的一点是。大众点评的app中已经有了比较完善的排序功能。在app中已经可以方便地按价格排序得到以上的结果。那感觉……

  下面我只好剑走偏锋,给大家总结一点点评app上筛选不出的数据。

  福州餐厅价格分布

  假设对福州的餐厅消费按以下规则来分类

  考虑到屌丝消费的餐厅,大多数都没有在大众点评记录,或因没有星级而被当成无效记录,统计可能失准。因此下面不对小于30元/人 消费水平的餐厅作统计。

mysql> select count(*) from ResTable where price >= 200;mysql> select count(*) from ResTable where price < 200 and price >= 100;mysql> select count(*) from ResTable where price < 100 and price >= 30;

  从数量上看,中低消费的餐厅还是占据大部分。

  福州的吃货商圈

  统计数据库中各商圈的餐厅数量,如下:

mysql> select district, count(*) from ResTable group by district order by count(*) desc limit 30;

  以上商圈中,我们剔除掉行政区域的数据(如闽侯县,马尾区,其他地区),因为这些区域下的餐厅,通常不属于任何商圈,于是就被划分到以行政区域命名的区域中。剔除掉以上数据后,福州各大商圈的餐厅数据排序为:

  宝龙万象果然是最大的吃货聚集地,老牌商圈东街口排名老二,近几年新兴的商圈仓山万达和博仕后分列三、四位。

  值得注意的是,吃货商圈top10中,有两个是位于闽侯县。也说明闽侯大学城区块正在逐渐融入市区,有很大的发展潜力。

  福州的高富帅商圈

  上面统计了各大商圈的餐厅的“量”,以下来统计一下“价”。看看了解一下福州各大商圈中,哪个才是“高富帅”商圈。

mysql> select district, avg(price) from ResTable where district = 'xxxx' and price > 0;

  综合统计上述各大商圈的餐厅的人均消费,如下:

  福州各大商圈的人均消费

  五四路商务区是高端白领聚焦地,一举夺下福州最“高富帅”商圈称号。而位于闽侯上街区块的博仕后与新西客站,虽然在餐厅的“量”上挤入了福州top10商圈,但仍难以摆脱低端印象,在人均消费均价上排名垫底。“学生街”所在的福建师大商圈,聚焦了大量的小吃,人均消费也不会太高。

  分店最多的连锁餐厅

mysql> select name, count(*) from ResTable where price > 20 group by name order by count(*) desc limit 30;

  

  分店最多的餐厅,统计的时候,加上了人均消费价格大于20的限制。因为低消费的餐厅,在大众点评上没有完整的登记,统计出来的分店数量也有较大的偏差。

  根据上面的统计结果,排名第一的是卖Pizza的玛格利塔。M记与K记在福州竞争了这么多年,从餐厅数量上来看,还是M记占了上风。

  “三九”餐厅

  所谓三九餐厅,是指口味、服务、环境评分都在9.0(包含9.0)之上的餐厅。

mysql> select name, branch_name, taste, service, surroundings, price, star from ResTable -> where taste >= 9.0 and service >= 9.0 and surroundings >= 9.0 order by price;

  上面是“三九”餐厅,价格按从低到高排序的结果。有五家店的人均消费小于100,便宜未必没好货。

  文/小耸(简书作者)原文链接:http://www.jianshu.com/p/7af8bf250b3a

  著作权归作者所有,转载请联系作者获得授权。

  学技术,从www.w3cschool.cn开始。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值