当前位置: 首页 > 科技观察

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

时间:2023-03-18 20:09:26 科技观察

用Python分析国庆旅游景点,告诉你哪些地方好玩、便宜、人少那么去哪里玩人少,大还是高?我们不是程序员,所以让我们通过数据分析,看看哪些地方值得一去。1.目标用Python分析一下国庆有哪些旅游景点:好玩的地方,便宜的,人少的地方,不然要抢着拍照!2.获取数据由于首先要获取数据分析,所以朱哥首先在一些官网搜索了旅游信息。毕竟官方的数据比较靠谱,但是我一无所获,有点失望!然后寻找其他的替代方案:爬取旅游网站的旅游景点门票销售数据,也能反映旅游景点的热度!朱哥首先想到的是去哪儿,这里一定要安利一波去哪儿,同样的酒店,同样的房间,走到哪里价格基本都是最低的,所以朱哥也是用的最多的!选好学习对象,那我就开始了!注意??:本教程仅供学习交流之用。如有侵权,请联系朱哥删除!1、爬取单页数据我们可以去门票页面(http://piao.qunar.com/ticket/list.htm?keyword=)搜索:**国庆旅游景点**,可以看到推荐景点的一些信息,比如:名称、地区、热度、销量、价格、等级、地理信息等。信息应该说是比较齐全的,良心!然后按F12打开浏览器调试窗口,找到加载数据的url(翻页就能看到)直接返回json数据,真是方便。最后使用requests库写一个get请求,抓取这个页面的数据。是不是很简单?到这里在工单页面抓取数据还是很简单的。不用login,agent,甚至header都可以成功。后续批量抓取页面没有任何限制,比淘宝简单多了!2.抽取有效信息既然获取了数据,那么就要看数据结构,然后抽取自己想要的属性。在这里,猪哥提取了:id、姓名、星级、评分、票价、销量、地区、坐标、简介信息,基本都是有效信息,全部保存!3、将excel需要的数据提取出来后,我们就可以保存了。这里我们使用pandas库来保存excel文件。没有安装pandas库的同学,安装pipinstallxlrdpipinstallopenpyxlpipinstallnumpypipinstallpandas到这里,单页数据的处理就完成了,爬取、解析、保存三个步骤~4.批量爬取批量爬取也很简单,先找到分页数据,然后再点击几个比较不同参数的页数,经过一段时间的分析,可以看出参数page是一个分页参数,所以我们在外层写了一个for循环,并且传入页数,实现批量抓取。那个36是我在网页上看到的,当然也可以自动判断爬取是否完成,判断每次返回的条数就可以了!看一下批量爬取的效果。3、数据下载下来之后,我们要思考如何去使用和分析这些数据,猪哥简单的做了几个分析:景区门票销量排名分析景点门票销量排名分析景点门票销量排名分析景点数量各省各级别分析景区销售热图分析推荐景区分析我们使用的可视化库还是:pyecharts库,更多维度分析等你来想~1.景区门票销售排名分析。我们先来分析一下景区门票的销售排名。我们创建了一个数据透视表,然后根据销量排序!最后生成了一个柱状图,我们来看看效果:可以看到迪士尼门票的销量排在第一位。2.景点销量=单价*销量的销量排名分析,我们可以将每行的价格和销量相乘来计算销量。我们将销售数据放回df,然后排序迪士尼真的很吸金!!!3、各省各级别景点数量分析由于时间关系,本次分析尚未完成。本来想分析每个省份每个级别有多少个景点,但是由于时间关系还没有完成,有兴趣的同学可以下载源码自己尝试一下,作为课后作业~4.热力图景区销售分析我们之前做过很多热力图,都是使用pyecharts库,今天我们来做点不一样的,我们使用百度地图openapi(免费)制作热力图。首先需要在百度地图开放平台申请应用。操作非常简单。如何申请可以直接百度或者看这篇文章:https://jingyan.baidu.com/article/363872eccda8286e4aa16f4e.html需要注意的是申请申请的时候类型一定要选择浏览器,然后你可以下载一个百度热图的demohtml,把html中的ak代码换成我自己的。更改ak代码后,我们需要更改json数据。我们先生成和默认数据一样格式的json数据,然后替换看看效果。动态地图支持放大缩小,可仔细查看各省市区景区热度。图5推荐景点分析应该推荐什么样的景点?朱哥认为是:收视率高,销量低,价格便宜。推荐系数和分数成正比,和销量和价格成反比,所以朱哥设计了一个最简单的算法:盲目推荐系数=分数/(销售价格)*1000看看这个简单推荐算法的结果。看到这个盲目推荐的TOP20里面有很多中外景点(尤其是日本)。国庆节到哪里去的人还真是不少啊!如果你觉得我设计的推荐算法太low了,你可以想想怎么设计一个更好的。有道理,然后自己调试,期待看到不一样的结果!