用Python分析大连景点,告诉你哪些景点性价比高

开发 后端
去哪儿网的数据存储非常简单,都在源网页中静态存储,我们只需构造好URL之后,用Requests发起请求,然后用Bs4将数据提取出来,存储到Excel中即可。

[[422047]]

本文转载自微信公众号「志斌的python笔记」,作者志斌。转载本文请联系志斌的python笔记公众号。

大家好,我是志斌~

再过几天,志斌就要去大连开始为期三年的读研生活啦,当然在读书学习的同时,也要去体验一下“魅力之都”的魅力,所以志斌用Python爬取了去哪儿网上大连景点的相关数据,包括景点名称、城区、热度、价格、月销量等数据,对数据进行可视化并作简单分析,用以找到性价比较高的景点。

一数据采集

去哪儿网的数据存储非常简单,都在源网页中静态存储,我们只需构造好URL之后,用Requests发起请求,然后用Bs4将数据提取出来,存储到Excel中即可。

爬虫的核心代码如下:

  1. import requests 
  2. from bs4 import BeautifulSoup 
  3. import openpyxl 
  4.  
  5. for page in range(1,50): 
  6.   try: 
  7.       params = ( 
  8.           ('from''mps_search_suggest_h'), 
  9.           ('keyword''大连'), 
  10.           ('page', str(page)), 
  11.       ) 
  12.       response = requests.get('https://piao.qunar.com/ticket/list_%E8%A5%BF%E5%AE%89.html', headers=headers, params=params) 
  13.       soup = BeautifulSoup(response.text,'html.parser'
  14.       zongs = soup.find_all('div',class_='sight_item'
  15.       for i in zongs: 
  16.           name = i.find('h3').text 
  17.           diqu = i.find(class_='area').find('a').text 
  18.           redu = round(float(i.find(class_='product_star_level').text.split()[-1][:4]) * 5, 2) 
  19.         dizhi = re.findall('地址:(.*?)地图', i.find(class_='address color999').text)[0] 
  20.           jiage = float(i.find(class_='sight_item_price').find('em').text) 
  21.           yuexiao = int(i.find(class_='sight_item_sold-num').find('span').text) 
  22.           xingji = i.find(class_='level'
  23.           jingweidu = i['data-point'
  24.           ~~~ 

二数据处理

01导入景点数据

用pandas读取爬取的景点数据并预览。

  1. import pandas as pd 
  2. df = pd.read_excel('大连景区数据_1.xlsx',names=['景点名称','城区','热度','地址','价格','月销量','星级','经度','纬度']) 
  3. print(df.head()) 

02删除重复数据

网站中有一定的重复数据,需要将其删除。

  1. df = df.drop_duplicates() 

03查看数据信息

查看字段类型和缺失值情况,符合分析需要,无需另做处理。

  1. df.info() 

三可视化分析

我们来对这164个景点数据进行可视化分析。

01景点介绍

通过对大连景点介绍进行词云图绘制,我们很容易看出大连的特点。博物馆、休闲、历史、文化等词的大量提及,说明大连是一座历史悠久的现代化城市。建筑、动物、主题等词也有很多提及,表明大连的旅游环境轻松且多样。

代码如下:

  1. with open("推荐语.txt",) as f: 
  2.    job_title_1 = f.read() 
  3. contents_cut_job_title = jieba.cut(job_title_1) 
  4. contents_list_job_title = " ".join(contents_cut_job_title) 
  5. wc = WordCloud(stopwords=STOPWORDS.add("一个"), collocations=False
  6.               background_color="white"
  7.               font_path=r"K:\msyh.ttc"
  8.               width=400, height=300, random_state=42, 
  9.               mask=imread('xin.jpg', pilmode="RGB"
  10.               ) 
  11. wc.generate(contents_list_job_title) 
  12. wc.to_file("推荐语.png"

02景区热度top10

从景点评分来看,金石滩景点评分最高,为4.55分,其次是老虎滩公园和星海广场,分别是4.5分和4.4分。怪不得一搜索大连的旅游攻略,每一个里面都有这几个景点。

03景点价格top10

从景点价格来看,除了潜水中心这个景点略贵,其他景点价格都还可以接受,去大连游玩的朋友,时间充裕的话可以都体验一下,志斌这三年是要都体验一遍了~

04月销量top10景点

从下图可以看出,海昌发现王国的销量最高,为908,其次是天门峡漂流,为786,志斌还没去过漂流,正好趁着这次在大连读书,抽时间去一次。

老虎滩海洋公园、大连森林动物园、大连圣亚海洋世界的销量也不少,分别是542,488,458。

05月销额top20景点

从下图可以看出、月销额较大的还是海昌发现王国、老虎滩海洋公园、大连圣亚海洋世界、看来月销额受到月销量的影响较大,受价格的影响较小。

06景点等级分布

从大连景点等级分布来看,3A以上等级的景点为24个,其中3A级景点1个,4A级景点21个,5A级景点2个。

07景点分布

从图中我们可以看出,景点大部分分布在旅顺区、中山区、金州区的东南沿海方位。如果来大连旅游的话,建议去旅顺口区或者中山区去住,因为那里交通较为便利。

四小结

通过上面简单的分析,我们大致可以获得以下几点发现:

1. 大连是一座历史悠久的现代化城市,很适合旅游。

2. 大连的景点主要集中在旅顺区、中山区、金州区,旅顺区和中山区的景点附近有地铁,所以建议住宿的时候可以尽量选择住在这两个区,这样出行游玩会比较方便。

3. 评分最高的景点是金石滩景点。

4. 本文仅供学习参考,不做它用。

温馨提示:疫情还未结束,外出旅行做好个人防护。尽量避免到中高风险地区游玩。

 

责任编辑:武晓燕 来源: 志斌的python笔记
相关推荐

2021-04-27 09:33:41

Python北京景点

2019-09-29 10:00:46

Python程序员旅游

2018-11-28 10:23:01

Python旅游景点数据

2017-09-17 10:05:20

Python景点国庆

2012-08-20 09:56:48

大数据

2019-10-24 08:39:47

Python闲鱼数据

2012-06-21 14:56:00

明基投影机

2012-01-17 13:53:17

惠普激光打印机

2021-07-05 05:30:37

AR物布空间应用

2012-07-25 10:45:04

打印机

2017-09-29 09:29:32

架构技术栈微信半月刊

2012-07-03 12:21:22

联想笔记本

2011-10-08 17:17:53

雅图投影仪

2018-11-06 13:24:27

爬虫分析房租

2019-05-05 09:14:19

数据.

2022-07-08 09:37:43

Python线程池数据可视化

2012-02-08 14:22:20

理光复合一体机

2018-07-27 14:04:24

数据分析薪资数据分析师

2011-06-21 16:13:57

夏普传真机

2020-01-09 13:24:31

Python 开发编程语言
点赞
收藏

51CTO技术栈公众号