作者 | 裸睡的猪

头图 | 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. 景点门票销售额排行分析

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

  4. 景点销量热力图分析

  5. 推荐景点分析

我们使用的可视化库仍然是: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,欢迎 Star。

双节

福利

这个假期,你准备去哪里玩,出去玩?结婚、相亲、谈恋爱?闭关修炼?还是在家葛优瘫?无论哪种最后还是和手机亲密接触,既然这样,何不加点有意义的

长假8天乐,打卡最快乐!无位置限制、无文字要求、我们只要你的人,完成假期8天打卡,我们将从完成打卡的猿大大们中抽取一位幸运猿成为活动的锦鲤哦!

公布时间:2020年10月9日

奖品池:

电子书:高性能MySQL(第3版) 、零基础轻松学Java、Python数据结构与算法分析(第2版)

课程:跟汤老师学Java:初识Java、迈向数据科学家:带你玩转Python数据分析

打卡方式:点击下方小程序,进入打卡通道哦

????????????

????????

识别小程序,开启首次打卡

推荐阅读--
Python 只用一行代码,可以实现哪些事儿?当pandas撞上了sql,于是一个强大的pandasql库产生了!
牛了!Python最容易入的10个坑!
球分享球点赞球在看

最强旅游攻略 | 用Python分析国庆中秋最佳旅游景点 (文末福利)相关推荐

  1. 计算机毕业设计Java峨眉山景点介绍及旅游攻略推荐平台(源码+系统+mysql数据库+lW文档)

    计算机毕业设计Java峨眉山景点介绍及旅游攻略推荐平台(源码+系统+mysql数据库+lW文档) 计算机毕业设计Java峨眉山景点介绍及旅游攻略推荐平台(源码+系统+mysql数据库+lW文档) 本源 ...

  2. python识别手写文字_如何快速使用Python神经网络识别手写字符?(文末福利)

    原标题:如何快速使用Python神经网络识别手写字符?(文末福利) 点击标题下[异步社区]可快速关注 在本文中,我们将进一步探讨一些使用Python神经网络识别手写字符非常有趣的想法.如果只是想了解神 ...

  3. 魔都上海4日旅游攻略?Python动态图告诉你!

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 博学而约取,厚积而薄发. 开场段子 ...

  4. Python抓取全国旅游景点以及小吃数据,想做旅游攻略?Python助你事半功倍。

    前言 疫情自从来了之后已经很久没有出去旅游过了,蹭着这段疫情好转,那肯定是要出去走一走的,这一篇其实是全国旅游中的一站,因为每个城市能玩的地方太多了,一篇文章下来肯定是写不了的,所以今天就抓取一下-- ...

  5. 如何识别手写文字python_如何快速使用Python神经网络识别手写字符?(文末福利)...

    ​点击标题下[异步社区]可快速关注 在本文中,我们将进一步探讨一些使用Python神经网络识别手写字符非常有趣的想法.如果只是想了解神经网络的基本知识,那不必阅读本文,可以先阅读<Python神 ...

  6. 用Python采集【去哪了】旅游景点攻略,可视化分析旅游出行数据

    知识点 requests 发送网络请求 parsel 解析数据 csv 保存数据 第三方库 requests >>> pip install requests parsel > ...

  7. 旅游有哪些好玩的地方? 今天用python分析适合年轻人的旅游攻略

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 "旅"是旅行,外出,即为了实现某一目的而在空间上从甲地到乙地的行进过程: "游"是外出游览.观光.娱乐,即为达到这 ...

  8. Python 爬取蚂蜂窝旅游攻略 (+Scrapy框架+MySQL)

    前言:使用python+scrapy框架爬取蚂蜂窝旅游攻略 Git代码地址:https://github.com/qijingpei/mafengwo 获取代理IP地址的开源项目ProxyPool-m ...

  9. Python 网络爬虫实战:爬取《去哪儿》网数千篇旅游攻略数据,再也不愁旅游去哪儿玩了

    好久不见! 今天我们来爬取 去哪儿网站 的 旅游攻略 数据. 0x00  找一个合理的作案动机 作为一名立志成为技术宅的普通肥宅,每次一到周末就会面临一个人生难题:这周末怎么过? 本来是没有这些问题的 ...

最新文章

  1. 微信小程序直播开启公测了,与平台直播有何不同?小程序直播如何搭建
  2. Qt新建项目No valid kits found解决思路
  3. C#简单实现LRU缓存
  4. VTK:Utilities之FullScreen
  5. QT的QGroupBox类的使用
  6. IOS基础之UIDynamicAnimator动力学入门-02
  7. 没人性!让我们这么早来上班
  8. 实时体积云渲染(地平线):二.Perlin噪声和Worley噪声
  9. c++卸载工具_IIS修复IIS出现错误后如何完全卸载重装
  10. java接口vm和dto的区别_第十八节:详解Java抽象类和接口的区别
  11. git工作流学习记录
  12. angular框架的SmartAdmin模板 如何请求后台数据
  13. ICON 文件构成 及 制作工具
  14. php 云片网对接,php调用云片网接口实现发送短信的案例
  15. 淘宝信用等级|淘宝买家信用等级|淘宝卖家信用等级(图片介绍更清晰)
  16. Sci-Hub十周年迎来解封!科研er的福音!附可用网址!
  17. 沈春华教授加入浙江大学!
  18. 离散数学学习笔记——第二讲——命题逻辑(第二部分)(2.10演绎法推理)
  19. win7计算机虚拟内存,Win7虚拟内存怎么设置最好?系统高手告诉你如何更好的设置虚拟内存...
  20. 大学物理上——复习系统c++代码

热门文章

  1. it人士理财分析(成为有钱的油腻男)
  2. 球员评历史最佳阵:乔丹魔术师坚如磐石詹皇选自己
  3. 第二天u3d的学习!
  4. 双显示器如何设置上下显示和鼠标上下进入第二屏幕方向
  5. 使用深度学习模型创作动漫故事,比较LSTM和GPT2的文本生成方法
  6. R语言 求均匀分布的矩估计
  7. 技术前沿与经典文章10:信息论之父香农,20世纪伟大的科学家,一个理论改变了一个时代
  8. Android应用优化之最基本的UI层显示优化
  9. 无法启动承载网络,组或资源的状态不是执行请求操作的正确状态
  10. ajax请求返回状态码