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

Posted w3cschool编程狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一名程序员用爬虫技术分析了福州7740家餐厅数据……相关的知识,希望对你有一定的参考价值。

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


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

源代码

Talk is cheap, show me the code. 依照惯例,先贴代码。

编码中用到了几个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;


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

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

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

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

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

福州餐厅价格分布

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

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

考虑到屌丝消费的餐厅,大多数都没有在大众点评记录,或因没有星级而被当成无效记录,统计可能失准。因此下面不对小于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;

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

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

福州的吃货商圈

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

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

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

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

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

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


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

福州的高富帅商圈

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

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

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

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

福州各大商圈的人均消费

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

分店最多的连锁餐厅

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

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

分店最多的餐厅,统计的时候,加上了人均消费价格大于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;

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

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

学技术,就到W3Cschool。(•‾̑⌣‾̑•)

以上是关于一名程序员用爬虫技术分析了福州7740家餐厅数据……的主要内容,如果未能解决你的问题,请参考以下文章

通过爬虫抓取链家二手房数据

团队Git现场编程实战

数据分析:未来十年,素食的浪潮必将席卷中国

第1组 团队Git现场编程实战

第01组 团队Git现场编程实战

第01组 团队Git现场编程实战