点击上方“码农进阶之路”,选择“设为星标”

回复“面经”获取面试资料

2019年国庆马上就要到来
猪哥今年想着来点新花样吧
玩肯定是要去玩的
不然怎么给祖国庆生

那去哪里玩人少big还高呢?
咱不是程序员嘛
那就用数据分析下
看看哪些地方值得去

一、目标

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

看看批量爬取的效果

三 、分析数据

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

  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

往期精选

工具篇:这可能是全 GitHub 最牛逼的抢票神器!
面试题:讲讲Redis有哪几个过期策略?
面试题:InnoDB中一棵B+树能存多少行数据?

码农进阶之路

长按二维码关注

面经 | 原理 | 源码  | 实战 | 工具

用Python分析国庆旅游景点,告诉你哪些地方好玩、便宜、人又少相关推荐

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

    作者 | 裸睡的猪 责编 | 屠敏 2019年国庆马上就要到来, 今年来点新花样吧, 玩肯定是要去玩的, 不然怎么给祖国庆生? 那去哪里玩?人少档次还高呢? 咱不是程序员嘛, 那就用数据分析下, 看看 ...

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

    作者 | 裸睡的猪 头图 | CSDN下载自视觉中国 文末福利,不要错过哦! 正文 2020年国庆中秋双节马上就要到来 昨天和朋友聊天: 我:"这8天你准备去哪里玩" 朋友:&qu ...

  3. 基于PYTHON django四川旅游景点推荐系统

    摘 要 基于四川旅游景点推荐系统的设计与实现是一个专为四川旅游景点为用户打造的旅游网站.该课题基于网站比较流行的Python 语言系统架构,B/S三层结构模式,通过Maven项目管理工具进行Jar包版 ...

  4. 用Python分析元旦旅游热门城市,告诉你哪些景点性价比更高

    元旦到了,难得的3天小长假,玩肯定是要去玩的,但去哪儿玩是个问题.于是,J哥以旅游热门城市厦门为例,用Python获取了去哪儿网的相关景点数据,包括景点名称.地区.评分.销量.价格.坐标等字段,对数据 ...

  5. 【python】数据分析实战:分析全国旅游景点数据,暑假还不知道去哪玩的看过来

    前言 暑假是学生老师们拥有的最长假期,这么长的假期,光待在家里太浪费了,何不选择一个好去处,欣赏欣赏夏季的美景?当然,并不是所有地方都适合这个时节去的,那么,暑假适合去国内那些地方旅游呢?现在我们学习 ...

  6. 盛夏海边,用Python分析青岛哪些景点性价比高

    作者 | 志斌 来源 | 志斌的python笔记 头图 | 付费下载于 IC Photo 在经过几年的热潮之后,人工智能AI算法已经在各行各业广泛使用了.例如在工业制造中,利用人工智能监测仪器仪表.人 ...

  7. 【爬虫实战项目】Python爬虫批量旅游景点信息数据并保存本地(附源码)

    前言 今天给大家介绍的是Python爬虫批量下载旅游景点信息数据,在这里给需要的小伙伴们代码,并且给出一点小心得. 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样 ...

  8. python+vue+django旅游景点酒店线路套餐管理系统

    1.查询旅游信息:主要查询景点和酒店的信息,可以进行分类查询也可以用关键在字来查询用户需要的信息. 2.留言功能:用户可以查看别人以前的留言,也可以发表新的留言.. 3.酒店预定:当用户查询到相关酒店 ...

  9. Python分析北京PM2.5,原来每年的值都在变少......

    什么是PM2.5 pm为英文particulate matter的缩写,翻译成中文叫做颗粒物.pm2.5是指大气中直径小于或等于2.5微米的颗粒物,有时也被称作入肺颗粒物.我们日常常见的雾霾天气大 多 ...

最新文章

  1. SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里
  2. .NET中防止Access数据库下载
  3. Cpp 对象模型探索 / 继承关系下的虚函数手动调用
  4. pycharm不支持svn,是需要svn命令行工具没有安装(for windows)
  5. DOM-1 DOM初探、JS对象、XML、幻灯片案例展示
  6. php mysql sqlite缓存_使用sqlite作为数据缓存
  7. linux netperf的安装
  8. 【CodeForces】741 D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths(dsu on tree)
  9. MySQL数据库(四)
  10. Json数据转化为DataTable的两种方法(vb.net)
  11. java:xml数据转json
  12. android手机视频编辑,美册视频编辑剪辑制作
  13. 变革时代 国内通讯云服务厂商对比介绍
  14. ELK学习--Kibana 5.6.5 安装
  15. REST/RESTFUL详解-转载
  16. 变形金刚2的影评-《变形金刚3 天网反击战》
  17. 德国:一个中国人在德国生活的真实感受
  18. 飞思卡尔Kinetis 60(K60)时钟系统分析
  19. 十大iOS休闲游戏评点
  20. c语言数字用英文表达方式有哪些,小学英语必考数字表达方式大全

热门文章

  1. Word不能点小化,否则会变成小窗口,怎么解决?
  2. canvas中MoveTo新解
  3. python的十句名言_十句金典的名言警句
  4. VMvare虚拟机黑屏的解决方法
  5. 栈内存和堆内存的区别与原理
  6. 问题 J: 舞伴问题
  7. 生成二维码中间放入图片
  8. android外卖软件开发,基于Android平台的外卖配送软件的设计与实现
  9. MySQL中的limit用法详解
  10. NetBSD安装后续工作