文章图片
作者 | 裸睡的猪
头图 | CSDN下载自视觉中国
文末福利,不要错过哦!
文章图片
正文
2020年国庆中秋双节马上就要到来
昨天和朋友聊天:
我:“这8天你准备去哪里玩”
朋友:“这次就算了吧,堪比人类大迁徙,不是看风景,而是看人头”
...............
不过,理是这么个理,但总觉得不参与这次“活动”,好像是对我人类身份的不认可
咱不是程序员嘛,
那就用数据分析下,
看哪些地方人少好玩档次高
文章图片
01
目标
使用Python分析出国庆哪些旅游景点:好玩、便宜、人还少的地方,不然拍照都要抢着拍!
文章图片
02
获取数据
既然做数据分析肯定要先搞到数据,最开始笔者在一些官方网站查找旅游信息,毕竟官方的数据可信度高点, 但我一无所获,有点失望!
然后寻找其他替代方案:爬取出行网站的旅游景点售票数据,这样也可以反映出旅游景点的热度!
笔者首先想到“去哪儿”,这里必须要安利一波去哪儿,同样的酒店同样的房间,去哪儿价格基本都是最低,所以笔者也用的最多!
选好学习对象,那我就开始吧!
注:本教程仅用作学习交流,请勿用作商用用途!
1. 爬取单页数据
我们可以在哪去儿的门票页(http://piao.qunar.com/ticket/list.htm?keyword=)搜索:**国庆旅游景点**,就可以看到推荐的景点的一些信息,如:名称、地区、热度、销量、价格、等级、地理信息等等,信息应该说是比较全,良心!
文章图片
然后按下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是我在网页上看到了,当然也可以实现自动判断是否爬取完成,只要判断每次返回的条数即可!
看看批量爬取的效果:
文章图片
文章图片
03
分析数据
数据都下载完毕后,就要思考如何去利用分析这些数据了,猪哥简单做了几个分析:
- 景点门票销量排行分析
- 景点门票销售额排行分析
- 各省各等级景点数分析
- 景点销量热力图分析
- 推荐景点分析
1.景点门票销量排行分析
我们先来分析下景点门票销量排行:
文章图片
我们创建了一个透视表,然后根据销量排序!最后生成柱状图,一起来看看效果:
文章图片
我们可以看到迪士尼门票销量排第一
2.景点销售额排行分析
销售额=单价*销量,我们可以将每行的price和sale相乘算出销售额:
文章图片
我们将得到的销售额数据放回df中,然后再排序:
文章图片
迪士尼真是吸金厉害!!!
3.各省各等级景点数分析
由于时间原因,该项分析暂未完成,本想分析下每个省每个等级的景点有多少个,但是由于时间原因暂未完成,感兴趣的同学可以下载源码自己试试 ,就当课后作业叭~
4.景点销量热力图分析
之前我们也做过很多热力图,都是用的pyecharts库,今天我们来点不一样 的,我们使用百度地图开放api(免费)做一个热力图,你首先要做的就是申请一个百度地图开放平台的应用,操作很简单,如何申请可以 直接百度或者看看这篇文章:https://jingyan.baidu.com/article/363872eccda8286e4aa16f4e.html
需要注意的是:在申请应用的时候类型一定要选浏览器:
文章图片
然后你就可以下载一个百度热力图的demo的html,在html中把ak码换成自己的。
文章图片
换完ak码就要换json数据了,我们先生成和默认数据一样格式的json数据,然后再替换掉
文章图片
最后来看看效果叭,动态地图支持放大缩小,可仔细查看各省、市、区景点热力图
文章图片
5.推荐景点分析
应该推荐怎样的景点呢?笔者认为是:高评分、销量少、价格便宜。
推荐系数和评分成正比,和销量、价格成反比,所以笔者设计了一个最简单的算法:
瞎推荐系数=评分/(销量价格) * 1000
文章图片
来看看这个简易的推荐算法得出的结果
文章图片
可以看到在这个瞎推荐TOP20中国外景点很多(尤其是日本),确实国内到国庆了哪里其实人都是挺多的!
如果你觉得我设计的推荐算法太low了,可以自己思考下如何设计更合理,然后自己动手调试,期待看到不一样的结果!
源码地址:https://github.com/pig6/qunar_spider,欢迎 Star。
双节
福利
这个假期,你准备去哪里玩,出去玩?结婚、相亲、谈恋爱?闭关修炼?还是在家葛优瘫?无论哪种最后还是和手机亲密接触,既然这样,何不加点有意义的
长假8天乐,打卡最快乐!无位置限制、无文字要求、我们只要你的人
文章图片
,完成假期8天打卡,我们将从完成打卡的猿大大们中抽取一位幸运猿成为活动的锦鲤哦!
公布时间:2020年10月9日
奖品池:
电子书:高性能MySQL(第3版) 、零基础轻松学Java、Python数据结构与算法分析(第2版)
课程:跟汤老师学Java:初识Java、迈向数据科学家:带你玩转Python数据分析
打卡方式:点击下方小程序,进入打卡通道哦
????????????
????????
【百度|最强旅游攻略 | 用Python分析国庆中秋最佳旅游景点 (文末福利)】识别小程序,开启首次打卡
推荐阅读--
Python 只用一行代码,可以实现哪些事儿?当pandas撞上了sql,于是一个强大的pandasql库产生了!
牛了!Python最容易入的10个坑!
球分享球点赞球在看
推荐阅读
- java|Spring Boot干货系列((一)优雅的入门篇 | 掘金技术征文)
- uniapp|uniapp(微信小程序使用高德地图进行坐标反解析获取详细地址)
- c++|为什么每一名程序员都应该学习 C++()
- 神经网络|只需两行代码,2080Ti 就能当 V100用,这个炼丹神器真牛!
- 大数据|Pair智能标注神器,全面升级,更加智能
- 资讯|AI 编程“神器”国产化!华为耗时 8 个月,这个能用中文生成代码的模型诞生了...
- 自然语言处理|医疗健康领域的短文本解析探索----文本纠错
- 算法|阿里飞猪搜索技术的应用与创新
- 嵌入式|干货(嵌入式系统设计开发大全!(万字总结))