国庆出游算一算!用Python分析国庆旅游景点

2019 年 9 月 30 日 新智元



  新智元推荐  

来源: 裸睡的猪(IT--Pig)
整理编辑:张佳
【新智元导读】国庆马上来了,不少朋友选择出游,那去哪里玩人少、好玩还便宜呢?作为程序员,那我就用数据分析下,看看哪些地方值得去。>>>人工智能改变中国,我们还要跨越这三座大山 | 献礼70周年


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


获取数据


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

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

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

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

注⚠️:本教程仅用作学习交流,如有侵害任何人权益,请联系猪哥删除!

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是我在网页上看到了,当然也可以实现自动判断是否爬取完成,只要判断每次返回的条数即可!

看看批量爬取的效果


分析数据


数据都下载完毕后,就要思考如何去利用分析这些数据了,猪哥简单做了几个分析:


  • 景点门票销量排行分析
  • 景点门票销售额排行分析
  • 各省各等级景点数分析
  • 景点销量热力图分析
  • 推荐景点分析

我们使用的可视化库仍然是:pyecharts库 ,更多维度分析等待你去思考~

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

本文经授权转载自“裸睡的猪(IT--Pig)

登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
专知会员服务
37+阅读 · 2020年6月7日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
广东疾控中心《新型冠状病毒感染防护》,65页pdf
专知会员服务
18+阅读 · 2020年1月26日
 【中科院信工所】社交媒体情感分析,40页ppt
专知会员服务
100+阅读 · 2019年12月13日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
比Selenium快100倍的方法爬东方财富网财务报表
程序人生
8+阅读 · 2018年10月31日
手把手教你绘制用户画像(文末赠5本PM必看书籍)
产品100干货速递
7+阅读 · 2018年10月25日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
基于大数据搭建社交好友推荐系统
云栖社区
8+阅读 · 2018年2月2日
教你用Python爬虫股票评论,简单分析股民用户情绪
数据派THU
10+阅读 · 2017年12月12日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
你以为自己真的了解用户画像?其实猫腻可多了
THU数据派
8+阅读 · 2017年7月12日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Arxiv
3+阅读 · 2018年4月5日
Arxiv
5+阅读 · 2018年3月28日
Arxiv
3+阅读 · 2017年7月6日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
专知会员服务
37+阅读 · 2020年6月7日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
广东疾控中心《新型冠状病毒感染防护》,65页pdf
专知会员服务
18+阅读 · 2020年1月26日
 【中科院信工所】社交媒体情感分析,40页ppt
专知会员服务
100+阅读 · 2019年12月13日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
相关资讯
比Selenium快100倍的方法爬东方财富网财务报表
程序人生
8+阅读 · 2018年10月31日
手把手教你绘制用户画像(文末赠5本PM必看书籍)
产品100干货速递
7+阅读 · 2018年10月25日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
基于大数据搭建社交好友推荐系统
云栖社区
8+阅读 · 2018年2月2日
教你用Python爬虫股票评论,简单分析股民用户情绪
数据派THU
10+阅读 · 2017年12月12日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
你以为自己真的了解用户画像?其实猫腻可多了
THU数据派
8+阅读 · 2017年7月12日
相关论文
Top
微信扫码咨询专知VIP会员