大家好,我是志斌~
清明马上就要到了,难得的三天假期,祭祖的同时,踏青游玩也是少不了的,但是去哪里玩是一个问题。于是,志斌用Python爬取了去哪儿网上西安景点的相关数据,包括景点名称、城区、热度、价格、月销量等数据,对数据进行可视化并作简单分析,用以找到性价比较高的景点。
后台回复[西安]两字即可获得全部代码!
01数据采集
去哪儿网的数据存储非常简单,都在源网页中静态存储,我们只需构造好URL之后,用Requests发起请求,然后用Bs4将数据提取出来,存储到Excel中即可。
爬虫部分代码如下:
import requests from bs4 import BeautifulSoup import openpyxl for page in range(1,50): try: params = ( ('from', 'mps_search_suggest_h'), ('keyword', '\u897F\u5B89'), ('page', str(page)), ) response = requests.get('https://piao.qunar.com/ticket/list_%E8%A5%BF%E5%AE%89.html', headers=headers, params=params) soup = BeautifulSoup(response.text,'html.parser') zongs = soup.find_all('div',class_='sight_item') for i in zongs: name = i.find('h3').text diqu = i.find(class_='area').find('a').text redu = round(float(i.find(class_='product_star_level').text.split()[-1][:4]) * 5, 2) dizhi = re.findall('地址:(.*?)地图', i.find(class_='address color999').text)[0] jiage = float(i.find(class_='sight_item_price').find('em').text) yuexiao = int(i.find(class_='sight_item_sold-num').find('span').text) xingji = i.find(class_='level') jingweidu = i['data-point']
02数据处理
我们这次尝试使用Excel来对数据进行处理,毕竟新版的Excel的数据处理功能已经不输于Python,更重要的是它不需要写脚本。
去除重复数据
我们在获取数据时,因为是无差别获取,所以网站中的重复数据,我们可能也采集、存储下来了,所以需要去重。删除重复数据后,剩余147个景点的数据。
查看数据信息
查看去重后的数据,发现它符合分析需要,不需要在作其他处理了。
03可视化分析
我们此次也是采用Excel来进行数据可视化。
景点介绍
通过对西安景点介绍进行词云图绘制,我们很容易看出西安的特点。文化、历史、博物馆等词的大量提及,说明西安是一座典型的文化古城;休闲、娱乐、乐园等词的提及,也体现了西安旅游环境轻松且多样。
热度top10景点
从景点评分来看,小雁塔评分最高,5分满分。其次是陕西历史博物馆和秦始皇陵园,都是4.55分。怪不得一搜索西安旅游攻略,每一个里面都有这三个景点。
价格top10景点
从景点价格来看,去大雁塔音乐喷泉、滑翔机、直升机类的活动花销较大,如果是穷游的朋友可以提前避开,对价格不敏感的朋友可以去体验一下。
月销量top10景点
从门票月销量来看,秦始皇帝陵博物馆排第一,月销量6118。其次是华清宫和长恨歌,月销量分别是3930和2819,其中大唐不夜城也有2100+的月销量。
月销额top10
从下图可以看出、月销额较大的还是秦始皇帝陵博物馆、华清宫和长恨歌,看来月销额受到月销量的影响较大,受价格的影响较小。
景点分布
2016版的Excel,可以进行平面地图的绘制。从图中我们可以看出景点主要集中在莲湖区、碑林区、雁塔区,临潼区也有不少景点。
景点等级分布
从西安景点等级分布来看,3A以上等级的景点占比为17%。
这是筛选出的3A级以上的景点:
04总结
通过上面简单的分析,我们大致可以获得以下几点发现:
1. 西安是典型的文化古城,具有丰富的历史文化知识。
2. 西安的旅游景点主要集中在莲湖区、碑林区、雁塔区。
3. 小雁塔评分最高,其次是陕西历史博物馆和秦始皇陵园。
4. 秦始皇帝陵博物馆的门票销量远远领先其他景点,所以去西安一定要去秦始皇陵看看。
5. 消费较高的活动是雁塔音乐喷泉、滑翔机、直升机类。
温馨提示:疫情还未结束,外出旅行做好个人防护。尽量避免到中高风险地区游玩。