爬取点评成都数据,只为告诉你哪家火锅最好吃

栏目: Python · 发布时间: 7年前

内容简介:冬天到了,天气越来越冷,小编起床越来越困难了,每一天都想吃辣辣的火锅。成都到处都是火锅店,有名的店,稍微去晚一点,排队都要排好久,没听说的店,又怕味道不好。那么如何选择火锅店呢?最简单的肯定是在美团。大众点评上找一找啊。所以,本文就从大众点评上爬取了成都的火锅数据,来进行了分析。首先小编定位为成都,美食类型选的“火锅”,火锅具体类型选的不限,区域选的不限,排序选的智能,如图:

冬天到了,天气越来越冷,小编起床越来越困难了,每一天都想吃辣辣的火锅。成都到处都是火锅店,有名的店,稍微去晚一点,排队都要排好久,没听说的店,又怕味道不好。那么如何选择火锅店呢?最简单的肯定是在美团。大众点评上找一找啊。所以,本文就从大众点评上爬取了成都的火锅数据,来进行了分析。

1、爬虫

首先小编定位为成都,美食类型选的“火锅”,火锅具体类型选的不限,区域选的不限,排序选的智能,如图:

爬取点评成都数据,只为告诉你哪家火锅最好吃

你也可以选择别的选项,只是注意URL的变化。本文都是按照上述选项爬取的数据。接下来翻页观察一下URL的变化:

第二页:

爬取点评成都数据,只为告诉你哪家火锅最好吃

第三页:

爬取点评成都数据,只为告诉你哪家火锅最好吃

很容易观察出翻页变化的知识p后面的数字,倒推回第一页,发现一样的显示内容,因此,写一个循环,便可以爬取全部页面。但是大众点评只提供了前50页的数据,所以,我们也只能爬取前50页。

这一次,小编用的pyquery来分析网页的,所以我们需要定位到我们所爬取的数据的位置,如图:

爬取点评成都数据,只为告诉你哪家火锅最好吃

在具体分析的网页的时候,我震惊了,大众点评的反爬做的太过分了,它的数字,一些文字居然都不是明文显示,而是代码,你还不知道怎么分析它。如图:

爬取点评成都数据,只为告诉你哪家火锅最好吃

很烦的,一些文字又可以显示,一些又用代码表示。一些数字也是,不过好一点的是数字只有9个,只要稍微观察一下,就能发现数字的代码是什么了。这里小编列出来了。 {'hs-OEEp': 0, 'hs-4Enz': 2, 'hs-GOYR': 3, 'hs-61V1': 4, 'hs-SzzZ': 5, 'hs-VYVW': 6, 'hs-tQlR': 7, 'hs-LNui': 8, 'hs-42CK': 9}。值得注意的是,数字1,是用明文表示的。

那么,如何用pyquery来定位呢,很简单,你找到你要获取的数据,然后右键→copy→cut selector,你复制到代码里面就OK了。pyquery的具体用法百度既有。

爬取点评成都数据,只为告诉你哪家火锅最好吃

最后,我们获取了火锅50个页面的数据,每页15个数据,一共750家餐厅的数据。

爬取点评成都数据,只为告诉你哪家火锅最好吃

2、分析

大众点评已经给出了星级评价,可以看看大致趋势。

爬取点评成都数据,只为告诉你哪家火锅最好吃

准五星商户最多,可能因为大部分食客都习惯给好评,只有实在不满时才会打出低评有关,造成了评级一般不低,但近满分还是蛮少的。

在本文,我们假设评论数目为饭店的热度,也就是它越火,评论数目越多。

爬取点评成都数据,只为告诉你哪家火锅最好吃

评论数目大多在1000以内,但是高于2000,甚至高于4000也还存在一些,这些饭店应该是一些网红店。以5000为约束,筛选出饭店均为小龙坎、蜀大侠都非常知名的火锅店。那么评论数量和星级有关系吗?看下图:

爬取点评成都数据,只为告诉你哪家火锅最好吃

这里取其评论数平均值,发现对于四星以上商户来说,评论数和星级并不关系,但均比低于四星的饭店销量更好。这说明在四星以上之后,人们选择差别不大,但一般不愿意接受评论太差的饭店。

对于小编这样的学生党来说,影响较大还有人均消费情况。

爬取点评成都数据,只为告诉你哪家火锅最好吃

成都的火锅店人均消费大部分都在50-100的区间内,高于150的也有一些。对于小编来讲,吃一顿火锅,人均在50-100是可以接受的,高于100,小编就要低头看看钱包了。那扩展看,人均消费和星级、评论数量有关系吗?

爬取点评成都数据,只为告诉你哪家火锅最好吃

上图是人均消费和星级的关系,看起来并无任何关系,那说明一些口碑好的火锅店,其实人均也不贵。下面看看人均和评论数目的关系吧。

爬取点评成都数据,只为告诉你哪家火锅最好吃

通过比较,发现评论数目低于500,人均在50-100区间是最多的。当然这肯定和评论数量、人均消费本身集中于这一阶段有关。

吃火锅,一家店的生意好坏,肯定还和它的特色菜有关,小编通过jieba分词,将爬取到的推荐菜做了一个词云图,如下。

爬取点评成都数据,只为告诉你哪家火锅最好吃

小编最爱的牛肉是特色菜之最啊,尤其是麻辣牛肉,只要去吃火锅,都要来上一份,其次是毛肚、虾滑、鹅肠等等。

接下来是大家都关心的,口味、环境和服务的情况。

爬取点评成都数据,只为告诉你哪家火锅最好吃

三者得分大多都是集中在8.0-9.2这一阶段,小编认为,低于7.5分的饭店还是不要去尝试了。同时,星级评价应该也是由这三者得分产生的。

爬取点评成都数据,只为告诉你哪家火锅最好吃

爬取点评成都数据,只为告诉你哪家火锅最好吃

爬取点评成都数据,只为告诉你哪家火锅最好吃

果然如预想的一向,星级评价越好,它在口味、环境和服务的得分越高。那么口味,环境,服务得分与评论数量,平均价格有关系吗?

爬取点评成都数据,只为告诉你哪家火锅最好吃

如图所看,并无什么直接关系,但是我们发现口味、环境和服务三者之间存在着非常好的线性关系,于是单独拿出来画了一个较大的图。

爬取点评成都数据,只为告诉你哪家火锅最好吃

我们并且拟合了线性关系,由于三星商户只有一家,它的情况较为特殊之外,其他星级在口味、环境和服务的关系拟合中保持的相当一致,这也证明我们的猜想,这些变量之间存在线性关系。鉴于小编本文最大的目的是做推荐,于是,我们进行了K-means聚类,这里小编取K为3,并且把星级转换为数字,五星对应5分,准五星对应4.5分,以此类推。最终得到了三类,通过作图,看看聚类情况如何吧。

爬取点评成都数据,只为告诉你哪家火锅最好吃

爬取点评成都数据,只为告诉你哪家火锅最好吃

爬取点评成都数据,只为告诉你哪家火锅最好吃

爬取点评成都数据,只为告诉你哪家火锅最好吃

和我们想要的结果一致,在口味、环境、服务和星级上得分越高,我们就越推荐。然而推荐的店铺还是好多,能不能在集中一些呢?于是小编通过限制评论数量、人均消费和特色菜来进行推荐。由于小编喜欢人少,便宜还有牛肉的店铺,这里得到了如下的结果:

爬取点评成都数据,只为告诉你哪家火锅最好吃

小编接下来要做的就是,吃遍它们,哈哈哈哈,想想都开心。

就酱~~~

代码在:https://github.com/summerheday/dazhongdianping-chengdu-hotpot


以上所述就是小编给大家介绍的《爬取点评成都数据,只为告诉你哪家火锅最好吃》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

群体智能

群体智能

James Kennedy、Russell C Eberhart、Yuhui Shi / 人民邮电出版社 / 2009-2-1 / 75.00元

群体智能是近年来发展迅速的人工智能学科领域.通过研究分散,自组织的动物群体和人类社会的智能行为, 学者们提出了许多迥异于传统思路的智能算法, 很好地解决了不少原来非常棘手的复杂工程问题.与蚁群算法齐名的粒子群优化(particle swarm optimization, 简称PSO)算法就是其中最受瞩目,应用最为广泛的成果之一. 本书由粒子群优化算法之父撰写,是该领域毋庸置疑的经典著作.作者......一起来看看 《群体智能》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具