葫芦旅游网

首页 > 旅游攻略

旅游攻略

Python 分析国庆热门旅游景点,告诉你哪些地方好玩、便宜、人又少

2020-09-09 10:43:00旅游攻略
作者 | 裸睡的猪责编 | 屠敏2019年国庆马上就要到来,今年来点新花样吧,玩肯定是要去玩的,不然怎么给祖国庆生?那去哪里玩?人少档次还高呢?咱不是程序员嘛,那就用数据分析下,看看哪些地方值得去!

作者 | 裸睡的猪

责编 | 屠敏

2019年国庆马上就要到来,

今年来点新花样吧,

玩肯定是要去玩的,

不然怎么给祖国庆生?

那去哪里玩?人少档次还高呢?

咱不是程序员嘛,

那就用数据分析下,

看看哪些地方值得去!

目标

使用Python分析出国庆哪些旅游景点:好玩、便宜、人还少的地方,不然拍照都要抢着拍!

获取数据

既然做数据分析肯定要先搞到数据,最开始笔者在一些官方网站查找旅游信息,毕竟官方的数据可信度高点, 但我一无所获,有点失望!

然后寻找其他替代方案:爬取出行网站的旅游景点售票数据,这样也可以反映出旅游景点的热度!

笔者首先想到“去哪儿”,这里必须要安利一波去哪儿,同样的酒店同样的房间,去哪儿价格基本都是最低,所以笔者也用的最多!

选好学习对象,那我就开始吧!

注:本教程仅用作学习交流,请勿用作商用用途!

1. 爬取单页数据

我们可以在哪去儿的门票页(

然后按下F12打开浏览器调试窗口,查找加载数据的url(翻页就可以看到):

竟然直接返回了json数据,真是太方便了:

最后使用requests库写一个get请求就可以了

这样一页数据就抓取下来了,是不是很简单?

这里说下去哪儿门票页抓取数据还是很简单,不需要登录、不需要代理 、甚至不需要header也可以成功,后面批量抓取页没出现限制,相对于淘宝来说简单了许多!

2. 提取有效信息

既然数据拿到了,那就看看数据结构,然后提取自己想要的属性吧:

这里猪哥提取了:id、名称、星级、评分、门票价格、销量、地区、坐标、简介这些信息,基本有效信息都保存起来!

3. 保存到excel

需要的数据提取出来之后,我们就可以将他们保存起来。这里我们使用pandas库保存excel文件。

没有安装pandas库的同学安装一下:

pip install xlrd

pip install openpyxl

pip install numpy

pip install pandas

这里单页数据的处理就完成了,爬取、解析、保存三步走~

4. 批量爬取

批量爬取也很简单,先找分页数据,多点几下页数比较不同参数就能看出来

经过一会的分析,我们便可以看出参数 page 就是分页参数了,这样我们在外层写一个for循环,把页数传入就可以实现批量爬取

那个36是我在网页上看到了,当然也可以实现自动判断是否爬取完成,只要判断每次返回的条数即可!

看看批量爬取的效果:

分析数据

数据都

我们创建了一个透视表,然后根据销量排序!最后生成柱状图,一起来看看效果:

我们可以看到迪士尼门票销量排第一

2.景点销售额排行分析

销售额=单价*销量,我们可以将每行的price和sale相乘算出销售额:

我们将得到的销售额数据放回df中,然后再排序:

迪士尼真是吸金厉害!!!

3.各省各等级景点数分析

由于时间原因,该项分析暂未完成,本想分析下每个省每个等级的景点有多少个,但是由于时间原因暂未完成,感兴趣的同学可以

然后你就可以

换完ak码就要换json数据了,我们先生成和默认数据一样格式的json数据,然后再替换掉

最后来看看效果叭,动态地图支持放大缩小,可仔细查看各省、市、区景点热力图

5.推荐景点分析

应该推荐怎样的景点呢?笔者认为是:高评分、销量少、价格便宜。

推荐系数和评分成正比,和销量、价格成反比,所以笔者设计了一个最简单的算法:

瞎推荐系数=评分/(销量价格) * 1000

来看看这个简易的推荐算法得出的结果

可以看到在这个瞎推荐TOP20中国外景点很多(尤其是日本),确实国内到国庆了哪里其实人都是挺多的!

如果你觉得我设计的推荐算法太low了,可以自己思考下如何设计更合理,然后自己动手调试,期待看到不一样的结果!

源码地址:https://github